|
|
@ -38,6 +38,7 @@ import org.nl.system.service.notice.ISysNoticeService; |
|
|
|
import org.nl.system.service.param.ISysParamService; |
|
|
|
import org.nl.system.service.param.dao.Param; |
|
|
|
import org.nl.wms.ext.acs.service.WmsToAcsService; |
|
|
|
import org.nl.wms.sch.manage.TaskStatusEnum; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
@ -126,9 +127,8 @@ public class AutoCallAirShaftTask extends Prun { |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void doCallShaft(Param isOnlyPulling, Param tzDay, Param tzArea, Param useXn, Param max_qzz_num) { |
|
|
|
//查询套轴缓存位:点位启用、有子卷、气胀轴字段不为空、且无未完成的任务
|
|
|
|
//(1)查询套轴缓存位:点位启用、有子卷、气胀轴字段不为空、且无未完成的任务
|
|
|
|
List<CutpointAirShhaftDto> notTaskPoints = bcutpointivtService.getAreaNotTaskPointByTcQzzPoint(""); |
|
|
|
//(1)若有拔轴任务,则会执行本段代码
|
|
|
|
//对满足的需拔轴子卷遍历下发任务,同时每次拔轴下发前判断是否有可以接续的套轴计划
|
|
|
|
for(int i= 0;i<notTaskPoints.size();i++){ |
|
|
|
//获取需拔轴子卷信息
|
|
|
@ -317,9 +317,9 @@ public class AutoCallAirShaftTask extends Prun { |
|
|
|
//计划中需要的气胀轴代数
|
|
|
|
String qzz_generation = planDto.getQzz_generation(); |
|
|
|
String product_area = ""; |
|
|
|
if (StrUtil.equals(qzz_generation, "4")){ |
|
|
|
if (StrUtil.equals(qzz_generation, SlitterConstant.SLITTER_PLAN_FOUR)){ |
|
|
|
product_area = "A1"; |
|
|
|
}else if (StrUtil.equals(qzz_generation, "5")){ |
|
|
|
}else if (StrUtil.equals(qzz_generation, SlitterConstant.SLITTER_PLAN_FIVE)){ |
|
|
|
product_area = "B1"; |
|
|
|
} |
|
|
|
|
|
|
@ -376,6 +376,15 @@ public class AutoCallAirShaftTask extends Prun { |
|
|
|
} |
|
|
|
|
|
|
|
//(3)套轴区自动移出空盘
|
|
|
|
//判断是否有自动移出托盘的任务下发,如果有则跳过代码
|
|
|
|
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>(); |
|
|
|
lam.eq(SchBaseTask::getHandle_class, StockAreaSendVehicleTask.class) |
|
|
|
.ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) |
|
|
|
.ne(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()) |
|
|
|
.eq(SchBaseTask::getIs_delete, "0") |
|
|
|
.orderByAsc(SchBaseTask::getTask_code); |
|
|
|
List<SchBaseTask> tasks = taskService.list(lam); |
|
|
|
if(tasks.size()<=0){ |
|
|
|
//判断是否有可移出空盘:有库存、已启用、且属于套轴区点位
|
|
|
|
LambdaQueryWrapper<BstIvtStockingivt> stockLam = new LambdaQueryWrapper<>(); |
|
|
|
stockLam.eq(BstIvtStockingivt::getIvt_status,SlitterConstant.SLITTER_YES) |
|
|
@ -417,6 +426,7 @@ public class AutoCallAirShaftTask extends Prun { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
*获取满足条件的可下发的分切计划 |
|
|
@ -698,7 +708,7 @@ public class AutoCallAirShaftTask extends Prun { |
|
|
|
return true; |
|
|
|
} |
|
|
|
// 3.2 判断是否有单独拉出去的任务,有的话直接拉过来。
|
|
|
|
List<BstIvtStockingivt> stockingivts = stockingivtService.getMoveTaskPoints(); |
|
|
|
List<BstIvtStockingivt> stockingivts = stockingivtService.getMoveTaskPoints(SlitterEnum.TASK_TYPE.code("备货区单独送空载具")); |
|
|
|
if (CollectionUtil.isNotEmpty(stockingivts)) { |
|
|
|
BstIvtStockingivt bstIvtStockingivt = stockingivts.get(0); |
|
|
|
// 直接搬过来即可
|
|
|
@ -715,6 +725,18 @@ public class AutoCallAirShaftTask extends Prun { |
|
|
|
stockAreaCallTubeTask.createTask(param); |
|
|
|
return true; |
|
|
|
} |
|
|
|
//判断是否有自动移出托盘的任务下发,如果有则跳过代码
|
|
|
|
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>(); |
|
|
|
lam.eq(SchBaseTask::getTask_type, SlitterEnum.TASK_TYPE.code("备货区送载具")) |
|
|
|
.ne(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()) |
|
|
|
.ne(SchBaseTask::getTask_status, TaskStatusEnum.CANCEL.getCode()) |
|
|
|
.eq(SchBaseTask::getIs_delete, "0") |
|
|
|
.orderByAsc(SchBaseTask::getTask_code); |
|
|
|
List<SchBaseTask> tasks = taskService.list(lam); |
|
|
|
if(tasks.size()>=0){ |
|
|
|
log.info("已经有移出托盘的任务,不允许再次下发:"+tasks.toString()); |
|
|
|
return false; |
|
|
|
} |
|
|
|
// 查找一个没有任务的空位
|
|
|
|
List<BstIvtStockingivt> list = stockingivtService.getEmptyPointNotTask("3"); |
|
|
|
if (list.size() == 0) { |
|
|
|