文档服务地址:http://47.92.0.57:3000/ 周报索引地址:http://47.92.0.57:3000/s/NruNXRYmV

Commit b0e172a0 by 李景熙

任务状态的更改

parent d14ad0aa
...@@ -93,8 +93,6 @@ def set_result_id(userid, dataid, resultid): ...@@ -93,8 +93,6 @@ def set_result_id(userid, dataid, resultid):
relation = Relation.get(Relation.user_id == userid, Relation.data_id == dataid) relation = Relation.get(Relation.user_id == userid, Relation.data_id == dataid)
relation.result_id = resultid relation.result_id = resultid
relation.complete_time = datetime.datetime.now() relation.complete_time = datetime.datetime.now()
task_id = Slice.find_task_by_slice(relation.slice_id)
Task.set_state(task_id, 2)
relation.save() relation.save()
except: except:
return False return False
...@@ -107,8 +105,6 @@ def set_result_pic(relation_id): ...@@ -107,8 +105,6 @@ def set_result_pic(relation_id):
try: try:
relation = Relation.get(Relation.relation_id == relation_id) relation = Relation.get(Relation.relation_id == relation_id)
relation.complete_time = datetime.datetime.now() relation.complete_time = datetime.datetime.now()
task_id = Slice.find_task_by_slice(relation.slice_id)
Task.set_state(task_id, 2)
relation.save() relation.save()
except: except:
return False return False
...@@ -264,6 +260,18 @@ def finish_slicelist(user_id, slicelist): ...@@ -264,6 +260,18 @@ def finish_slicelist(user_id, slicelist):
return Result(1, "submit success", {}) return Result(1, "submit success", {})
def check_slice_completed(slice_id):
try:
find = Relation.get(Relation.slice_id == slice_id)
except:
return False
else:
if find.flag == 1:
return True
else:
return False
if __name__ == '__main__': if __name__ == '__main__':
# Relation.drop_table() # Relation.drop_table()
# Relation.create_table() # Relation.create_table()
......
...@@ -23,7 +23,7 @@ class Task(Model): ...@@ -23,7 +23,7 @@ class Task(Model):
task_name = CharField(null=False, max_length=20) task_name = CharField(null=False, max_length=20)
task_state = CharField(null=False, default=0) task_state = CharField(null=False, default=0)
# 发布状态:0代表刚发布,1代表被选中,2代表已完成标注,3代表审核结束,任务流程结束 # 发布状态:0代表刚发布,1代表被选择,2代表被全部选择,即不可继续选择(退出任务大厅),3代表全部提交(待审核),4代表审核结束(退出待审核),5代表任务被终止
class Meta: class Meta:
database = mysql database = mysql
...@@ -43,8 +43,8 @@ def create_task(publish_id, task_name): ...@@ -43,8 +43,8 @@ def create_task(publish_id, task_name):
# 参数:任务关键词、任务数组的范围 # 参数:任务关键词、任务数组的范围
def find_task_by_name(task_name, start, num): def find_task_by_name(task_name, start, num):
try: try:
find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time).where( find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time, Task.task_state).where(
Task.task_name.contains(task_name)).order_by(Task.task_id.desc()) Task.task_name.contains(task_name), Task.task_state == 0 and 1).order_by(Task.task_id.desc())
index = 0 index = 0
list = [] list = []
while index + start < len(find) and index < num: while index + start < len(find) and index < num:
...@@ -66,9 +66,11 @@ def find_task_by_name(task_name, start, num): ...@@ -66,9 +66,11 @@ def find_task_by_name(task_name, start, num):
# 查找所有任务(用于任务大厅界面) # 查找所有任务(用于任务大厅界面)
# 什么任务会出现在任务大厅中?未被选择完全的任务、未被发布者终止的任务
def find_task(start, num): def find_task(start, num):
try: try:
find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time).order_by(Task.task_id.desc()) find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time, Task.task_state).where(
Task.task_state == 0 and 1).order_by(Task.task_id.desc())
index = 0 index = 0
list = [] list = []
while index + start < len(find) and index < num: while index + start < len(find) and index < num:
...@@ -93,15 +95,21 @@ def find_task(start, num): ...@@ -93,15 +95,21 @@ def find_task(start, num):
def find_task_by_creator(creator, start, num): def find_task_by_creator(creator, start, num):
try: try:
find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time, Task.task_state).where( find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time, Task.task_state).where(
Task.publish_id == creator, Task.task_state == 0 and 1).order_by(Task.task_id.desc()) Task.publish_id == creator, Task.task_state != 5).order_by(Task.task_id.desc())
index = 0 index = 0
list = [] list = []
while index + start < len(find) and index < num: while index + start < len(find) and index < num:
user = User.get_username(find[index + start].publish_id) user = User.get_username(find[index + start].publish_id)
if find[index + start].task_state == '0': if find[index + start].task_state == '0':
state = "已发布" state = "已发布"
else: elif find[index + start].task_state == '1':
state = "被选中"
elif find[index + start].task_state == '2':
state = "被选中" state = "被选中"
elif find[index + start].task_state == '3':
state = "待审核"
else:
state = "已结束"
list.append( list.append(
{ {
'id': find[index + start].task_id, 'id': find[index + start].task_id,
...@@ -123,7 +131,7 @@ def find_task_by_creator(creator, start, num): ...@@ -123,7 +131,7 @@ def find_task_by_creator(creator, start, num):
def find_task_check(creator, start, num): def find_task_check(creator, start, num):
try: try:
find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time).where( find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time).where(
Task.publish_id == creator, Task.task_state == 2).order_by(Task.task_id.desc()) Task.publish_id == creator, Task.task_state == 3).order_by(Task.task_id.desc())
index = 0 index = 0
list = [] list = []
while index + start < len(find) and index < num: while index + start < len(find) and index < num:
...@@ -149,8 +157,8 @@ def find_task_completed(executor, start, num): ...@@ -149,8 +157,8 @@ def find_task_completed(executor, start, num):
try: try:
slice_list = Relation.find_slice_by_completed(executor) slice_list = Relation.find_slice_by_completed(executor)
task_list = Slice.find_task_by_slicelist(slice_list) task_list = Slice.find_task_by_slicelist(slice_list)
find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time).where( find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time, Task.task_state).where(
Task.task_id << task_list).order_by(Task.task_id.desc()) Task.task_id << task_list, Task.task_state != 5).order_by(Task.task_id.desc())
index = 0 index = 0
list = [] list = []
while index + start < len(find) and index < num: while index + start < len(find) and index < num:
...@@ -189,8 +197,8 @@ def find_task_my_task(executor, start, num): ...@@ -189,8 +197,8 @@ def find_task_my_task(executor, start, num):
try: try:
slice_list = Relation.find_slice_by_executor(executor) slice_list = Relation.find_slice_by_executor(executor)
task_list = Slice.find_task_by_slicelist(slice_list) task_list = Slice.find_task_by_slicelist(slice_list)
find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time).where( find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time, Task.task_state).where(
Task.task_id << task_list).order_by(Task.task_id.desc()) Task.task_id << task_list, Task.task_state == 1 and 2).order_by(Task.task_id.desc())
index = 0 index = 0
list = [] list = []
while index + start < len(find) and index < num: while index + start < len(find) and index < num:
...@@ -257,10 +265,28 @@ def find_task_name(task_id): ...@@ -257,10 +265,28 @@ def find_task_name(task_id):
def set_state(task_id, state): def set_state(task_id, state):
try: try:
t = Task.get(Task.task_id == task_id) t = Task.get(Task.task_id == task_id)
if state == 'selected':
# 判断是否任务内所有分片均被选择,若被全选,则state是2,否则是1
slice_list = Slice.find_slicelist_by_taskId(t.task_id)
flag = True
for i in slice_list:
if not Relation.find_slice(i.slice_id):
flag = False
if flag:
t.task_state = 2
else:
t.task_state = 1
elif state == 'commit':
slice_list = Slice.find_slicelist_by_taskId(t.task_id)
flag = True
for i in slice_list:
if not Relation.check_slice_completed(i.slice_id):
flag = False
if flag:
t.task_state = 3
except: except:
return False return False
else: else:
t.task_state = state
t.save() t.save()
return True return True
......
...@@ -34,7 +34,6 @@ def select_pieces(): ...@@ -34,7 +34,6 @@ def select_pieces():
userId = int(data['userId']) userId = int(data['userId'])
selected = list(data['selected']) selected = list(data['selected'])
task_id = Slice.find_task_by_slice(selected[0]) task_id = Slice.find_task_by_slice(selected[0])
Task.set_state(task_id, 1)
for sliceItem in selected: for sliceItem in selected:
ret = Data.find_data_by_slice(sliceItem) ret = Data.find_data_by_slice(sliceItem)
if ret.code == 0: if ret.code == 0:
...@@ -56,7 +55,7 @@ def select_pieces(): ...@@ -56,7 +55,7 @@ def select_pieces():
'data': ret.data 'data': ret.data
} }
return json.dumps(res) return json.dumps(res)
Task.set_state(task_id, 'selected')
res = { res = {
'code': 1, 'code': 1,
'message': "ok", 'message': "ok",
......
...@@ -267,6 +267,7 @@ def finish_task(): ...@@ -267,6 +267,7 @@ def finish_task():
for sliceItem in slicelist: for sliceItem in slicelist:
list.append(sliceItem.slice_id) list.append(sliceItem.slice_id)
ret = Relation.finish_slicelist(userId, list) ret = Relation.finish_slicelist(userId, list)
Task.set_state(taskId, 'commit')
res = { res = {
'code': ret.code, 'code': ret.code,
'message': ret.message, 'message': ret.message,
......
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