opt:优化送空载具任务
This commit is contained in:
@@ -73,28 +73,25 @@ public class AutoSendVehicleToKzj extends Prun{
|
||||
RLock lock = redissonClient.getLock(THIS_CLASS);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
//todo 只允许2个补空任务,后期需要根据区域动态获取任务数量
|
||||
List<String> taskTypes = new ArrayList<>(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")));
|
||||
List<SchBaseTask> existTask = taskService.getExistTasks(taskTypes);
|
||||
if (existTask.size() > 1) {
|
||||
return;
|
||||
}
|
||||
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"));
|
||||
List<BstIvtPackageinfoivt> vehiclePoints = packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
||||
if (!CollectionUtils.isEmpty(empPoints) && !CollectionUtils.isEmpty(vehiclePoints)){
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
||||
task.put("point_code1", vehiclePoints.get(0).getPoint_code());
|
||||
task.put("point_code2", packageinfoivtService.getWaitPoint(empPoints.get(0).getBlock(), empPoints.get(0).getWait_point_type()));
|
||||
//预占用点位
|
||||
task.put("point_code3", empPoints.get(0).getPoint_code());
|
||||
djqToKzjhcwTask.createTask(task);
|
||||
}
|
||||
} else {
|
||||
if (!tryLock) {
|
||||
log.info("待检区或管制区->空载具缓存位补空任务正在创建被锁住。");
|
||||
return;
|
||||
}
|
||||
List<String> taskTypes = new ArrayList(Arrays.asList(PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)")));
|
||||
List<SchBaseTask> existTask = this.taskService.getExistTasks(taskTypes);
|
||||
if (existTask.size() <= 1) {
|
||||
List<BstIvtPackageinfoivt> empPoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空"));
|
||||
List<BstIvtPackageinfoivt> vehiclePoints = this.packageinfoivtService.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("待检区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
||||
if (!CollectionUtils.isEmpty(empPoints) && !CollectionUtils.isEmpty(vehiclePoints) && existTask.size() < empPoints.size()) {
|
||||
JSONObject task = new JSONObject();
|
||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
|
||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
||||
task.put("point_code1", vehiclePoints.get(0).getPoint_code());
|
||||
task.put("point_code2", this.packageinfoivtService.getWaitPoint(empPoints.get(0).getBlock(), empPoints.get(0).getWait_point_type()));
|
||||
task.put("point_code3", empPoints.get(0).getPoint_code());
|
||||
this.djqToKzjhcwTask.createTask(task);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (lock.isLocked() && lock.isHeldByCurrentThread()) {
|
||||
lock.unlock();
|
||||
|
||||
Reference in New Issue
Block a user