setWip updates the pendingEntities list and sets the hot flag of entity...

setWip updates the pendingEntities list and sets the hot flag of entity according to the type of the currentStation of the entity
parent ac748351
...@@ -132,7 +132,9 @@ def setWIP(entityList): ...@@ -132,7 +132,9 @@ def setWIP(entityList):
object=entity.currentStation #identify the object object=entity.currentStation #identify the object
object.getActiveObjectQueue().append(entity) #append the entity to its Queue object.getActiveObjectQueue().append(entity) #append the entity to its Queue
entity.schedule.append([object,now()]) #append the time to schedule so that it can be read in the result entity.schedule.append([object,now()]) #append the time to schedule so that it can be read in the result
# if the entity is of type Job/OrderComponent/Order
# if the entity is of type Job/OrderComponent/Order/Mould
elif entity.type=='Job' or 'OrderComponent' or 'Order' or 'Mould': elif entity.type=='Job' or 'OrderComponent' or 'Order' or 'Mould':
# find the list of starting station of the entity # find the list of starting station of the entity
currentObjectIds=entity.remainingRoute[0].get('stationIdsList',[]) currentObjectIds=entity.remainingRoute[0].get('stationIdsList',[])
...@@ -164,6 +166,21 @@ def setWIP(entityList): ...@@ -164,6 +166,21 @@ def setWIP(entityList):
entity.remainingRoute.pop(0) # remove data from the remaining route. entity.remainingRoute.pop(0) # remove data from the remaining route.
entity.schedule.append([object,now()]) #append the time to schedule so that it can be read in the result entity.schedule.append([object,now()]) #append the time to schedule so that it can be read in the result
entity.currentStation=object # update the current station of the entity entity.currentStation=object # update the current station of the entity
# if the currentStation of the entity is of type Machine then the entity
# must be processed first and then added to the pendingEntities list
# Its hot flag is not raised
if not (entity.currentStation in G.MachineList):
# variable to inform whether the successors are machines or not
successorsAreMachines=True
for nextObject in entity.currentStation.next:
if not nextObject in G.MachineList:
successorsAreMachines=False
break
if not successorsAreMachines:
entity.hot = False
# add the entity to the pendingEntities list
G.pendingEntities.append(entity)
def countIntervalThroughput(argumentDict={}): def countIntervalThroughput(argumentDict={}):
currentExited=0 currentExited=0
......
...@@ -57,7 +57,7 @@ class OrderComponent(Job): # inherits from the ...@@ -57,7 +57,7 @@ class OrderComponent(Job): # inherits from the
# variables to be used by OperatorRouter # variables to be used by OperatorRouter
self.hot=self.order.hot self.hot=self.order.hot
if self.order in G.pendingEntities: if self.order in G.pendingEntities:
G.pendingEntites.append(self) G.pendingEntities.append(self)
# TODO: isCritical argument is deprecated # TODO: isCritical argument is deprecated
# self.isCritical=isCritical # this should be self.order.isCritical. Added now for testing # self.isCritical=isCritical # this should be self.order.isCritical. Added now for testing
self.componentType = componentType # the type of the component which can be Basic/Secondary/Auxiliary self.componentType = componentType # the type of the component which can be Basic/Secondary/Auxiliary
...@@ -67,5 +67,4 @@ class OrderComponent(Job): # inherits from the ...@@ -67,5 +67,4 @@ class OrderComponent(Job): # inherits from the
self.requestingComponent = requestingComponent # the id of the requesting component self.requestingComponent = requestingComponent # the id of the requesting component
self.readyForAssembly = readyForAssembly # flag informing weather the component was received self.readyForAssembly = readyForAssembly # flag informing weather the component was received
# by the MouldAssembleBuffer # by the MouldAssembleBuffer
# variables that are used by OperatorRouter
\ No newline at end of file
...@@ -109,7 +109,6 @@ class QueueJobShop(Queue): ...@@ -109,7 +109,6 @@ class QueueJobShop(Queue):
# append only if not already in the list # append only if not already in the list
if nextObject not in activeObject.next: if nextObject not in activeObject.next:
activeObject.next.append(nextObject) activeObject.next.append(nextObject)
# TODO: if the successor of the object is a machine that is operated with operationType 'Load' # TODO: if the successor of the object is a machine that is operated with operationType 'Load'
# then the flag hot of the activeEntity must be set to True # then the flag hot of the activeEntity must be set to True
......
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