Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
DA-Platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
文档服务地址:
http://47.92.0.57:3000/
周报索引地址:
http://47.92.0.57:3000/s/NruNXRYmV
Open sidebar
Berlin
DA-Platform
Commits
4dfd7181
Commit
4dfd7181
authored
Jul 30, 2020
by
李景熙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改已完成任务列表显示逻辑
parent
a437ef77
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
123 additions
and
51 deletions
+123
-51
Relation.py
DAPlatform/dao/Relation.py
+20
-1
Slice.py
DAPlatform/dao/Slice.py
+44
-0
Task.py
DAPlatform/dao/Task.py
+59
-50
No files found.
DAPlatform/dao/Relation.py
View file @
4dfd7181
...
...
@@ -56,6 +56,16 @@ def set_grade(user_id, slice_id, score):
return
Result
(
1
,
"grade success"
,
{})
# 查找Relation中与用户id 任务id相关的分片列表
def
find_slice_by_task
(
taskid
,
user_id
):
try
:
slice_list
=
Relation
.
select
(
Relation
.
slice_id
)
.
where
(
Relation
.
user_id
==
user_id
,
Relation
.
flag
==
1
)
except
:
return
False
else
:
return
slice_list
# 查找Relation中与用户id相关的分片列表,用于我的任务的列表显示
def
find_slice_by_executor
(
user_id
):
try
:
...
...
@@ -126,6 +136,15 @@ def get_completed_num(sliceId):
return
num
def
get_total_num2
(
userId
,
sliceId
):
try
:
num
=
Relation
.
select
()
.
where
(
Relation
.
user_id
==
userId
,
Relation
.
slice_id
==
sliceId
)
.
count
()
except
:
return
0
else
:
return
num
# 获取某用户,某分片的标注进度
def
get_flag_count
(
userId
,
sliceId
):
try
:
...
...
@@ -170,7 +189,7 @@ def get_state(user_id, data_id):
# 获取某文件的标注者信息
def
get_executors
(
data_id
):
try
:
find
=
Relation
.
select
(
Relation
.
user_id
,
Relation
.
relation_id
)
.
where
(
Relation
.
data_id
==
data_id
,
Relation
.
flag
==
1
,
Relation
.
flag2
==
0
)
find
=
Relation
.
select
(
Relation
.
user_id
,
Relation
.
relation_id
)
.
where
(
Relation
.
data_id
==
data_id
)
index
=
0
list
=
[]
while
index
<
len
(
find
):
...
...
DAPlatform/dao/Slice.py
View file @
4dfd7181
...
...
@@ -5,6 +5,10 @@ from dao.model import mysql
class
Result
:
code
:
int
message
:
[]
data
:
{}
def
__init__
(
self
,
code
,
message
,
data
):
self
.
code
=
code
self
.
message
=
message
...
...
@@ -99,6 +103,7 @@ def find_slice_by_check(task_id):
'totalNum'
:
total_num
}
)
# print(find[index].slice_id,find[index].document_number,completed_num,total_num)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{})
...
...
@@ -176,6 +181,45 @@ def find_slice_by_task_user(task_id, user_id):
return
Result
(
1
,
"find success"
,
list
)
def
find_slice_by_judge
(
task_id
,
user_id
):
try
:
slice_list
=
Relation
.
find_slice_by_executor
(
user_id
)
find
=
Slice
.
select
(
Slice
.
slice_id
,
Slice
.
document_number
,
Slice
.
type
,
Slice
.
model_id
,
Slice
.
illustration
)
.
where
(
Slice
.
task_id
==
task_id
,
Slice
.
slice_id
<<
slice_list
)
index
=
0
list
=
[]
while
index
<
len
(
find
):
total_num
=
Relation
.
get_flag_count
(
user_id
,
find
[
index
]
.
slice_id
)
completed_num
=
Relation
.
get_total_num2
(
user_id
,
find
[
index
]
.
slice_id
)
if
find
[
index
]
.
type
==
'0'
:
t
=
"文本"
template
=
find
[
index
]
.
model_id
elif
find
[
index
]
.
type
==
'1'
:
t
=
"图片"
template
=
find
[
index
]
.
illustration
else
:
t
=
"图层"
template
=
find
[
index
]
.
illustration
list
.
append
(
{
'id'
:
find
[
index
]
.
slice_id
,
'fileNum'
:
find
[
index
]
.
document_number
,
'type'
:
t
,
'template'
:
template
,
'completedNum'
:
completed_num
,
'totalNum'
:
total_num
}
)
# print(find[index].slice_id,find[index].document_number,completed_num,total_num)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{})
else
:
return
Result
(
1
,
"find success"
,
list
)
# 添加文件
def
add_file
(
slice_id
):
try
:
...
...
DAPlatform/dao/Task.py
View file @
4dfd7181
from
peewee
import
*
import
datetime
import
math
import
json
from
dao
import
User
,
Relation
,
Slice
from
dao.model
import
mysql
class
Result
:
code
:
int
message
:
[]
data
:
{}
pages
:
int
def
__init__
(
self
,
code
,
message
,
data
,
pages
):
self
.
code
=
code
self
.
message
=
message
...
...
@@ -37,28 +43,41 @@ def create_task(publish_id, task_name):
return
Result
(
1
,
"create success"
,
task
.
task_id
,
0
)
# 判断该用户是否完成该任务
def
judge_completed
(
taskid
,
user_id
):
ret
=
Slice
.
find_slice_by_judge
(
taskid
,
user_id
)
list
=
ret
.
data
for
item
in
list
:
completedNum
=
item
[
'completed_num'
]
totalNum
=
item
[
'total_num'
]
if
completedNum
!=
totalNum
:
return
0
return
1
# 根据任务名称查找任务(任务大厅搜索功能)
def
find_task_by_name
(
task_name
,
start
,
num
):
try
:
find
=
Task
.
select
(
Task
.
task_id
,
Task
.
task_name
,
Task
.
publish_id
,
Task
.
publish_time
)
.
where
(
Task
.
task_name
.
contains
(
task_name
))
find
=
Task
.
select
(
Task
.
task_id
,
Task
.
task_name
,
Task
.
publish_id
,
Task
.
publish_time
)
.
where
(
Task
.
task_name
.
contains
(
task_name
))
index
=
0
list
=
[]
while
index
+
start
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
while
index
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
}
)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{},
0
)
else
:
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
# 查找所有任务(用于任务大厅界面)
...
...
@@ -67,22 +86,22 @@ def find_task(start, num):
find
=
Task
.
select
(
Task
.
task_id
,
Task
.
task_name
,
Task
.
publish_id
,
Task
.
publish_time
)
index
=
0
list
=
[]
while
index
+
start
<
len
(
find
)
and
index
<
num
:
while
index
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
}
)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{},
0
)
else
:
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
# 查找与该发布者相关的任务(用于我的发布界面)
...
...
@@ -92,7 +111,7 @@ def find_task_by_creator(creator, start, num):
Task
.
publish_id
==
creator
,
Task
.
task_state
==
0
and
1
)
index
=
0
list
=
[]
while
index
+
start
<
len
(
find
)
and
index
<
num
:
while
index
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
if
find
[
index
+
start
]
.
task_state
==
'0'
:
state
=
"已发布"
...
...
@@ -100,11 +119,11 @@ def find_task_by_creator(creator, start, num):
state
=
"被选中"
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
),
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
),
'state'
:
state
}
)
...
...
@@ -112,7 +131,7 @@ def find_task_by_creator(creator, start, num):
except
:
return
Result
(
0
,
"find failed"
,
{},
0
)
else
:
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
# 寻找发布者发布的需要审核的任务
...
...
@@ -122,22 +141,22 @@ def find_task_check(creator, start, num):
Task
.
publish_id
==
creator
,
Task
.
task_state
==
2
)
index
=
0
list
=
[]
while
index
+
start
<
len
(
find
)
and
index
<
num
:
while
index
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
}
)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{},
0
)
else
:
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
# 寻找已完成任务(根据所给用户id去Relation表中查询已完成的任务)
...
...
@@ -149,29 +168,22 @@ def find_task_completed(executor, start, num):
Task
.
task_id
<<
task_list
)
index
=
0
list
=
[]
while
index
+
start
<
len
(
find
)
and
index
<
num
:
while
index
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
if
judge_completed
(
find
[
index
+
start
]
.
task_id
,
executor
)
==
1
:
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
}
)
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
}
)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{},
0
)
else
:
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
#判断任务是否已完成(查找任务下的所有分片,对每个分片都判断已完成文件的数量,然后与分片下文件总数对比,如果相等,则视为分片完成,
# 如果所有分片都完成则任务视为完成,返回1,否则返回0)
def
judge_completed
(
taskid
,
user_id
):
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
# 寻找标注者选择的任务(从Relation表中找到用户id标注的分片,再利用分片表获取任务列表)
...
...
@@ -183,22 +195,22 @@ def find_task_my_task(executor, start, num):
Task
.
task_id
<<
task_list
)
index
=
0
list
=
[]
while
index
+
start
<
len
(
find
)
and
index
<
num
:
while
index
<
len
(
find
)
and
index
<
num
:
user
=
User
.
get_username
(
find
[
index
+
start
]
.
publish_id
)
list
.
append
(
{
'id'
:
find
[
index
+
start
]
.
task_id
,
'id'
:
find
[
index
+
start
]
.
task_id
,
'creator'
:
user
,
'creator_id'
:
find
[
index
+
start
]
.
publish_id
,
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
'name'
:
find
[
index
+
start
]
.
task_name
,
'date'
:
find
[
index
+
start
]
.
publish_time
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
}
)
index
+=
1
except
:
return
Result
(
0
,
"find failed"
,
{},
0
)
else
:
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
return
Result
(
1
,
"find success"
,
list
,
math
.
ceil
(
len
(
find
)
/
num
))
# 删除任务
...
...
@@ -250,9 +262,8 @@ def set_state(task_id, state):
except
:
return
False
else
:
if
int
(
t
.
task_state
)
<
int
(
state
):
t
.
task_state
=
state
t
.
save
()
t
.
task_state
=
state
t
.
save
()
return
True
...
...
@@ -260,5 +271,3 @@ if __name__ == '__main__':
# print(find_task_my_task(1,1,1))
Task
.
drop_table
()
Task
.
create_table
()
# find = Task.select(Task.task_id, Task.task_name, Task.publish_id, Task.publish_time)
# print(find[0+20])
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment