Commit 793d0c34 authored by z5335534 Ao Guo's avatar z5335534 Ao Guo

dispatcher 筛选修改

parent 2ab9736c
...@@ -108,32 +108,15 @@ class DispatchSubmission: ...@@ -108,32 +108,15 @@ class DispatchSubmission:
if task in [0, 1, 2]: # 卡车空载或在装载区出场前, 可变更卸载目的地 if task in [0, 1, 2]: # 卡车空载或在装载区出场前, 可变更卸载目的地
try: try:
# item = (
# session_mysql.query(DispatchMatch)
# .filter_by(dump_id=dispatch_seq[1],
# exactor_id=dispatch_seq[0],
# truck_id=truck_id,
# group_id=group_id,
# isauto=1, isdeleted=0, ).first())
item = ( item = (
session_mysql.query(DispatchSetting) session_mysql.query(DispatchSetting)
.filter_by(exactor_id=dispatch_seq[0], .filter_by(
dump_id=dispatch_seq[1], # exactor_id=dispatch_seq[0],
# dump_id=dispatch_seq[1],
truck_id=truck_id, truck_id=truck_id,
group_id=group_id, group_id=group_id,
isauto=1, isdeleted=0, ).first()) isauto=1, isdeleted=0, ).first())
# item = (
# session_mysql.query(DispatchEquipment.id, DispatchMatch.load_area_id, DispatchMatch.unload_area_id, DispatchMatch.dump_id, DispatchEquipment.isdeleted).
# join(DispatchEquipment, DispatchMatch.match_code == DispatchEquipment.match_code).
# filter(DispatchMatch.exactor_id == dispatch_seq[0],
# DispatchMatch.dump_id == dispatch_seq[1],
# DispatchEquipment.equipment_id == truck_id,
# DispatchMatch.id == group_id
# ).first())
if item is None: if item is None:
raise Exception("调度计划表与实时监控不匹配") raise Exception("调度计划表与实时监控不匹配")
except Exception as es: except Exception as es:
...@@ -143,24 +126,7 @@ class DispatchSubmission: ...@@ -143,24 +126,7 @@ class DispatchSubmission:
.filter_by(truck_id=truck_id, .filter_by(truck_id=truck_id,
# group_id=group_id, # group_id=group_id,
isauto=1, isdeleted=0, ).first()) isauto=1, isdeleted=0, ).first())
# item = (
# session_mysql.query(DispatchEquipment.id, DispatchMatch.load_area_id, DispatchMatch.unload_area_id, DispatchMatch.dump_id, DispatchEquipment.isdeleted).
# join(DispatchEquipment, DispatchMatch.match_code == DispatchEquipment.match_code).
# filter(DispatchEquipment.equipment_id == truck_id,
# DispatchMatch.id == group_id
# ).first())
try: try:
# record["exactorId"] = item.exactor_id
# record["dumpId"] = item.dump_id
# record["loadAreaId"] = item.load_area_id
# record["unloadAreaId"] = item.unload_area_id
# record["dispatchId"] = item.id
# record["isdeleted"] = False
# record["creator"] = item.creator
# record["createtime"] = item.createtime.strftime(
# "%b %d, %Y %I:%M:%S %p")
record["id"] = item.id record["id"] = item.id
record["exactorId"] = dispatch_seq[0] record["exactorId"] = dispatch_seq[0]
...@@ -181,21 +147,12 @@ class DispatchSubmission: ...@@ -181,21 +147,12 @@ class DispatchSubmission:
item = ( item = (
session_mysql.query(DispatchSetting) session_mysql.query(DispatchSetting)
.filter_by(exactor_id=dispatch_seq[0], .filter_by(
dump_id=dispatch_seq[1], # exactor_id=dispatch_seq[0],
# dump_id=dispatch_seq[1],
truck_id=truck_id, truck_id=truck_id,
group_id=group_id, group_id=group_id,
isauto=1, isdeleted=0, ).first()) isauto=1, isdeleted=0, ).first())
# item = (
# session_mysql.query(DispatchEquipment.id, DispatchMatch.load_area_id, DispatchMatch.unload_area_id, DispatchMatch.dump_id, DispatchEquipment.isdeleted).
# join(DispatchEquipment, DispatchMatch.match_code == DispatchEquipment.match_code).
# filter(DispatchMatch.exactor_id == dispatch_seq[0],
# DispatchMatch.dump_id == dispatch_seq[1],
# DispatchEquipment.equipment_id == truck_id,
# DispatchMatch.id == group_id
# ).first())
if item is None: if item is None:
raise Exception("调度计划表与实时监控不匹配") raise Exception("调度计划表与实时监控不匹配")
except Exception as es: except Exception as es:
...@@ -205,25 +162,7 @@ class DispatchSubmission: ...@@ -205,25 +162,7 @@ class DispatchSubmission:
.filter_by(truck_id=truck_id, .filter_by(truck_id=truck_id,
# group_id=group_id, # group_id=group_id,
isauto=1, isdeleted=0, ).first()) isauto=1, isdeleted=0, ).first())
# item = (
# session_mysql.query(DispatchEquipment.id, DispatchMatch.load_area_id, DispatchMatch.unload_area_id, DispatchMatch.dump_id, DispatchEquipment.isdeleted).
# join(DispatchEquipment, DispatchMatch.match_code == DispatchEquipment.match_code).
# filter(DispatchEquipment.equipment_id == truck_id,
# DispatchMatch.id == group_id
# ).first())
try: try:
# record["exactorId"] = self.excavator.excavator_index_to_uuid_dict[dispatch_seq[1]]
# record["dumpId"] = item.dump_id
# record["loadAreaId"] = item.load_area_id
# record["unloadAreaId"] = item.unload_area_id
# record["dispatchId"] = item.id
# record["isdeleted"] = False
# record["creator"] = item.creator
# record["createtime"] = item.createtime.strftime(
# "%b %d, %Y %I:%M:%S %p")
record["id"] = item.id record["id"] = item.id
record["exactorId"] = dispatch_seq[0] record["exactorId"] = dispatch_seq[0]
record["dumpId"] = item.dump_id record["dumpId"] = item.dump_id
...@@ -241,20 +180,17 @@ class DispatchSubmission: ...@@ -241,20 +180,17 @@ class DispatchSubmission:
elif task == -2: elif task == -2:
try: try:
try: try:
item = ( a =dispatch_seq[0]
session_mysql.query(DispatchSetting) b = truck_id
.filter_by(exactor_id=dispatch_seq[0],
truck_id=truck_id,
group_id=group_id,
isauto=1, isdeleted=0).first())
# item = ( item = (
# session_mysql.query(DispatchEquipment.id, DispatchMatch.load_area_id, DispatchMatch.unload_area_id, DispatchMatch.dump_id, DispatchEquipment.isdeleted). session_mysql.query(DispatchSetting)
# join(DispatchEquipment, DispatchMatch.match_code == DispatchEquipment.match_code). .filter_by(
# filter(DispatchMatch.exactor_id==dispatch_seq[0], # exactor_id=dispatch_seq[0],
# DispatchEquipment.equipment_id==truck_id, truck_id=truck_id,
# # DispatchMatch.group_code==group_id group_id=group_id,
# ).first()) isauto=1, isdeleted=0).first())
bb = item.id
if item is None: if item is None:
raise Exception("调度计划表与实时监控不匹配") raise Exception("调度计划表与实时监控不匹配")
......
...@@ -102,7 +102,6 @@ class Group: ...@@ -102,7 +102,6 @@ class Group:
for i in range(len(self.truck_set)): for i in range(len(self.truck_set)):
self.truck_uuid_index_dict[list(self.truck_set)[i]] = i self.truck_uuid_index_dict[list(self.truck_set)[i]] = i
self.truck_uuid_index_dict = bidict(self.truck_uuid_index_dict) self.truck_uuid_index_dict = bidict(self.truck_uuid_index_dict)
self.excavator_uuid_index_dict = bidict(self.excavator_uuid_index_dict) self.excavator_uuid_index_dict = bidict(self.excavator_uuid_index_dict)
self.dump_uuid_index_dict = bidict(self.dump_uuid_index_dict) self.dump_uuid_index_dict = bidict(self.dump_uuid_index_dict)
...@@ -129,18 +128,17 @@ class Group: ...@@ -129,18 +128,17 @@ class Group:
truck_dispatch = {} truck_dispatch = {}
assert issubclass(solver, AlgorithmBase) assert issubclass(solver, AlgorithmBase)
s = solver(self, self.truck, self.pre_sch) # algorithm init s = solver(self, self.truck, self.pre_sch) # algorithm init
tt = self.truck_set
# update truck task type
for i in list(self.truck_set): for i in list(self.truck_set):
truck_trip = self.truck.get_truck_current_trip()[self.truck_uuid_index_dict[i]] truck_trip = self.truck.get_truck_current_trip()[self.truck_uuid_index_dict[i]]
truck_task = self.truck.get_truck_current_task()[i] truck_task = self.truck.get_truck_current_task()[i]
if truck_task in [-2, 3, 4]: if truck_task in [-2, 3, 4]:
next_excavator_list = s.solve(i) next_excavator_value = s.solve(i)
# min_index = next_excavator_list.index(min(next_excavator_list)) # min_index = next_excavator_list.index(min(next_excavator_list))
min_index = np.argmin(next_excavator_list) min_index = np.argmin(next_excavator_value)
bb = self.excavator_uuid_index_dict
next_excavator_id = self.excavator_uuid_index_dict.inverse[min_index] next_excavator_id = self.excavator_uuid_index_dict.inverse[min_index]
if truck_task == -2: if truck_task == -2:
next_dump_id = "Park" next_dump_id = "Park"
...@@ -149,8 +147,8 @@ class Group: ...@@ -149,8 +147,8 @@ class Group:
truck_dispatch[i] = [next_excavator_id, next_dump_id] truck_dispatch[i] = [next_excavator_id, next_dump_id]
if truck_task in [0, 1]: if truck_task in [0, 1]:
next_dump_list = s.solve(i) next_dump_value = s.solve(i)
min_index = next_dump_list.index(min(next_dump_list)) min_index = np.argmin(next_dump_value)
next_dump_id = self.dump_uuid_index_dict.inverse[min_index] next_dump_id = self.dump_uuid_index_dict.inverse[min_index]
next_excavator_id = self.excavator_uuid_index_dict.inverse[truck_trip[-1]] next_excavator_id = self.excavator_uuid_index_dict.inverse[truck_trip[-1]]
truck_dispatch[i] = [next_excavator_id, next_dump_id] truck_dispatch[i] = [next_excavator_id, next_dump_id]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment