|
|
@@ -2,6 +2,7 @@ package com.ktg.mes.rms.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import com.ktg.common.constant.UserConstants;
|
|
|
import com.ktg.common.core.domain.entity.SysUser;
|
|
|
@@ -503,7 +504,7 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
rmsTaskPool.setStockId(rmsTaskInstockLine.getInstockId());
|
|
|
rmsTaskPool.setSourceId(rmsTaskInstockLine.getLineId());
|
|
|
rmsTaskPool.setSourceType(rmsTaskInstockLine.getErpInstockCode());
|
|
|
- rmsTaskPool.setTaskType(rmsLineFlowTasks.get(0).getTaskType());
|
|
|
+// rmsTaskPool.setTaskType(rmsLineFlowTasks.get(0).getTaskType());
|
|
|
rmsTaskInstockLine.setDeviceCode(rmsLine.getStockDeviceCode());
|
|
|
rmsTaskInstockLine.setLiftCode(rmsLine.getStockLiftCode());
|
|
|
}
|
|
|
@@ -516,7 +517,7 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
rmsTaskPool.setStockId(rmsTaskOutstockLine.getOutstockId());
|
|
|
rmsTaskPool.setSourceId(rmsTaskOutstockLine.getLineId());
|
|
|
rmsTaskPool.setSourceType(rmsTaskOutstockLine.getErpOutstockCode());
|
|
|
- rmsTaskPool.setTaskType(rmsLineFlowTasks.get(0).getTaskType());
|
|
|
+// rmsTaskPool.setTaskType(rmsLineFlowTasks.get(0).getTaskType());
|
|
|
rmsTaskOutstockLine.setDeviceCode(rmsLine.getStockDeviceCode());
|
|
|
rmsTaskOutstockLine.setLiftCode(rmsLine.getStockLiftCode());
|
|
|
}
|
|
|
@@ -1189,7 +1190,11 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
rmsTaskPool.setParentId(parentId);
|
|
|
rmsTaskPool.setTaskLevel(flowTask.getAncestors().split(",").length-1);
|
|
|
rmsTaskPool.setTaskNum(flowTask.getOrderNum());
|
|
|
- rmsTaskPool.setIsMaster(flowTask.getIsMaster());
|
|
|
+ if(flowTask.getIsMaster() == null){
|
|
|
+ rmsTaskPool.setIsMaster(0);
|
|
|
+ }else{
|
|
|
+ rmsTaskPool.setIsMaster(flowTask.getIsMaster());
|
|
|
+ }
|
|
|
rmsTaskPool.setKeyRoute(rmsTaskPool.getToSite());
|
|
|
rmsTaskPool.setFromSite(parentTaskPool.getFromSite());
|
|
|
rmsTaskPool.setToSite(parentTaskPool.getToSite());
|
|
|
@@ -1271,7 +1276,21 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
rmsTaskPool.setRmsLift(rmsLift);
|
|
|
parentTaskPool.setRmsLift(rmsLift);
|
|
|
}
|
|
|
- RmsSiteLift rmsSiteLift = getRmsSiteLift(parentTaskPool.getRmsLift().getLiftCode(), 1);
|
|
|
+ long runStatus = 1L;
|
|
|
+ RmsLift pickPlat = rmsLine.getPickPlat();
|
|
|
+ if(pickPlat != null){
|
|
|
+ RmsSiteLift rmsSiteLift = new RmsSiteLift();
|
|
|
+ rmsSiteLift.setLiftCode(pickPlat.getLiftCode());
|
|
|
+ List<RmsSiteLift> rmsSiteLiftList = rmsSiteLiftMapper.selectRmsSiteLiftList(rmsSiteLift);
|
|
|
+ rmsSiteLiftList = rmsSiteLiftList.stream().filter(item -> item.getRunStatus() == 1 || item.getRunStatus() == 5).collect(Collectors.toList());
|
|
|
+ if(rmsSiteLiftList.size() > 1){
|
|
|
+ throw new Exception("拣货平台存在多个上架位置");
|
|
|
+ }
|
|
|
+ if(rmsSiteLiftList.size() > 0){
|
|
|
+ runStatus = rmsSiteLiftList.get(0).getRunStatus();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ RmsSiteLift rmsSiteLift = getRmsSiteLift(parentTaskPool.getRmsLift().getLiftCode(), runStatus);
|
|
|
RmsSite rmsSite = RmsSiteMapper.selectRmsSiteById(rmsSiteLift.getSiteId());
|
|
|
agvSite = rmsSite.getSiteType() + "$" + rmsSite.getSiteCode();
|
|
|
break;
|
|
|
@@ -1306,10 +1325,7 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
break;
|
|
|
}
|
|
|
case "-4": {
|
|
|
- /*if(rmsLine.getPickPlat() == null){
|
|
|
- throw new Exception("没有可用的拣货平台,请确认来源为拣货平台");
|
|
|
- }
|
|
|
- RmsLift pickPlat = rmsLine.getPickPlat();*/
|
|
|
+ //线边搬运--拣货平台出口
|
|
|
RmsLift pickPlat = null;
|
|
|
if(rmsLine != null && rmsLine.getPickPlat() != null){
|
|
|
pickPlat = rmsLine.getPickPlat();
|
|
|
@@ -1348,6 +1364,7 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
break;
|
|
|
}
|
|
|
case "-5": {
|
|
|
+ //拣货平台入口
|
|
|
RmsLift pickPlat = null;
|
|
|
if(rmsLine != null && rmsLine.getPickPlat() != null){
|
|
|
pickPlat = rmsLine.getPickPlat();
|
|
|
@@ -1401,7 +1418,16 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //RmsLift pickPlat = rmsLine.getPickPlat();
|
|
|
+ if(pickPlat == null && rmsLine != null){
|
|
|
+ //获取设备绑定的拣货平台
|
|
|
+ RmsLift rmsLift = new RmsLift();
|
|
|
+ rmsLift.setDeviceType("6");
|
|
|
+ rmsLift.setDeviceCodes(rmsLine.getDeviceCode());
|
|
|
+ List<RmsLift> rmsLifts = rmsLiftMapper.selectRmsLiftList(rmsLift);
|
|
|
+ if(rmsLifts.size() > 0){
|
|
|
+ pickPlat = rmsLifts.get(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
if(pickPlat == null){
|
|
|
throw new Exception("没有可用的拣货平台");
|
|
|
}
|
|
|
@@ -1467,6 +1493,21 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
return rmsSiteLift;
|
|
|
}
|
|
|
|
|
|
+ private RmsSiteLift getRmsSiteLiftBySiteCode(String siteCode, long runStatus) throws Exception {
|
|
|
+ RmsSiteLift rmsSiteLift = new RmsSiteLift();
|
|
|
+ rmsSiteLift.setSiteCode(siteCode);
|
|
|
+ rmsSiteLift.setRunStatus(runStatus);
|
|
|
+ List<RmsSiteLift> rmsSiteLiftList = rmsSiteLiftMapper.selectRmsSiteLiftList(rmsSiteLift);
|
|
|
+ if(rmsSiteLiftList.size() == 0){
|
|
|
+ throw new Exception("轨道车没有设置"+(runStatus==1?"入":"出")+"库点");
|
|
|
+ }
|
|
|
+ rmsSiteLift = rmsSiteLiftList.get(0);
|
|
|
+ if(rmsSiteLift.getSiteId() == null){
|
|
|
+ throw new Exception("轨道车"+(runStatus==1?"入":"出")+"库站点不能为空");
|
|
|
+ }
|
|
|
+ return rmsSiteLift;
|
|
|
+ }
|
|
|
+
|
|
|
private List<WmRmsBox> getOutStockBox(RmsTaskOutstockLine outStockLine, RmsLine rmsLine) throws Exception {
|
|
|
// 获取料框,根据数量,先进先出,数量不足,取多个框
|
|
|
List<WmRmsBoxItem> boxItemList = null;
|
|
|
@@ -1807,21 +1848,20 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
}
|
|
|
|
|
|
public RmsLift queryRoller(RmsLift lift, int rollerType) throws Exception {
|
|
|
- RmsSiteLift rmsSiteLift = getRmsSiteLift(lift.getLiftCode(), rollerType);
|
|
|
- RmsSite rmsSite = RmsSiteMapper.selectRmsSiteById(rmsSiteLift.getSiteId());
|
|
|
+ RmsSiteLift rmsSiteLift = getRmsSiteLiftBySiteCode(lift.getSiteCode(), rollerType);
|
|
|
RmsLift selLift = rmsLiftMapper.selectRmsLiftByLiftId(rmsSiteLift.getLiftId());
|
|
|
- RmsLift rmsLift = new RmsLift();
|
|
|
- rmsLift.setDeviceType(DeviceTypeEnum.ROLLER.getValue()+"");
|
|
|
- rmsLift.setRollerType(rollerType);
|
|
|
- rmsLift.setSiteCode(rmsSite.getSiteCode());
|
|
|
- List<RmsLift> rmsLifts = rmsLiftMapper.selectRmsLiftList(rmsLift);
|
|
|
- if(rmsLifts.size() > 1){
|
|
|
- throw new Exception(rmsSite.getSiteCode() + "配置了多个接货平台");
|
|
|
- }
|
|
|
- if(rmsLifts.size() == 0){
|
|
|
- throw new Exception(rmsSite.getSiteCode() + "没有配置接货平台");
|
|
|
- }
|
|
|
- RmsLift rollerLift = rmsLifts.get(0);
|
|
|
+ RmsLift rollerLift = new RmsLift();
|
|
|
+ rollerLift.setSiteCode(lift.getSiteCode());
|
|
|
+ rollerLift.setDeviceType(DeviceTypeEnum.ROLLER.getValue()+"");
|
|
|
+ rollerLift.setRollerType(rollerType);
|
|
|
+ List<RmsLift> rollerLifts = rmsLiftMapper.selectRmsLiftList(rollerLift);
|
|
|
+ if(rollerLifts.size() > 1){
|
|
|
+ throw new Exception(lift.getSiteCode() + "配置了多个接货平台");
|
|
|
+ }
|
|
|
+ if(rollerLifts.size() == 0){
|
|
|
+ throw new Exception(lift.getSiteCode() + "没有配置接货平台");
|
|
|
+ }
|
|
|
+ rollerLift = rollerLifts.get(0);
|
|
|
rollerLift.setRmsLift(selLift);
|
|
|
return rollerLift;
|
|
|
}
|
|
|
@@ -1829,8 +1869,14 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
public RmsLift queryToSite(RmsTaskPool rmsTaskPool, RmsLineFlowTask flowTask) throws Exception {
|
|
|
String parentToSite = "";
|
|
|
RmsLift rmsLift = new RmsLift();
|
|
|
- if(String.valueOf(DeviceTypeEnum.ROLLERAGV.getValue()).equals(rmsTaskPool.getDeviceType())){
|
|
|
- parentToSite = rmsTaskPool.getToSite();
|
|
|
+ if(String.valueOf(DeviceTypeEnum.ROLLERAGV.getValue()).equals(rmsTaskPool.getDeviceType())
|
|
|
+ || String.valueOf(DeviceTypeEnum.RAILAGV.getValue()).equals(rmsTaskPool.getDeviceType())){
|
|
|
+ if("2".equals(flowTask.getTaskType())){ // 出库
|
|
|
+ parentToSite = rmsTaskPool.getFromSite();
|
|
|
+ }
|
|
|
+ if("1".equals(flowTask.getTaskType())){ // 入库
|
|
|
+ parentToSite = rmsTaskPool.getToSite();
|
|
|
+ }
|
|
|
if(parentToSite.contains("$")){
|
|
|
parentToSite = parentToSite.split("\\$")[1];
|
|
|
}
|
|
|
@@ -1849,6 +1895,7 @@ public class RmsLineServiceImpl implements IRmsLineService {
|
|
|
parentToSite = rmsSite.getSiteCode();
|
|
|
rmsLift.setSiteCode(parentToSite);
|
|
|
}
|
|
|
+ rmsLift.setLiftCode(rmsTaskPool.getLiftCode());
|
|
|
rmsLift.setRollerType(Integer.parseInt(flowTask.getTaskType()));
|
|
|
return rmsLift;
|
|
|
}
|