Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
84bb548f
Commit
84bb548f
authored
Mar 18, 2024
by
廖旭伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
05b68d67
165fa452
Changes
19
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1742 additions
and
1021 deletions
+1742
-1021
attendance-performance-manager-ui/admin/src/views/perform/attend/record/drawershow.vue
...r-ui/admin/src/views/perform/attend/record/drawershow.vue
+39
-4
attendance-performance-manager-ui/admin/src/views/perform/complain/record/drawershow.vue
...ui/admin/src/views/perform/complain/record/drawershow.vue
+39
-1
attendance-performance-manager-ui/admin/src/views/perform/effect/record/drawershow.vue
...r-ui/admin/src/views/perform/effect/record/drawershow.vue
+39
-2
attendance-performance-manager-ui/admin/src/views/perform/gowork/record/drawershow.vue
...r-ui/admin/src/views/perform/gowork/record/drawershow.vue
+37
-2
attendance-performance-manager-ui/admin/src/views/perform/other/record/drawershow.vue
...er-ui/admin/src/views/perform/other/record/drawershow.vue
+37
-1
attendance-performance-manager-ui/admin/src/views/perform/review/record/drawershow.vue
...r-ui/admin/src/views/perform/review/record/drawershow.vue
+37
-1
attendance-performance-manager-ui/admin/src/views/staff/perform/summary/list.vue
...manager-ui/admin/src/views/staff/perform/summary/list.vue
+127
-13
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncRegisterUserPicTaskImpl.java
.../mortals/xhx/daemon/task/SyncRegisterUserPicTaskImpl.java
+18
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+51
-36
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
...java/com/mortals/xhx/module/dept/service/DeptService.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
...mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorEntity.java
...in/java/com/mortals/xhx/module/door/model/DoorEntity.java
+48
-25
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorQuery.java
...ain/java/com/mortals/xhx/module/door/model/DoorQuery.java
+576
-408
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
...mortals/xhx/module/door/service/impl/DoorServiceImpl.java
+0
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/StaffService.java
...va/com/mortals/xhx/module/staff/service/StaffService.java
+6
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
...rtals/xhx/module/staff/service/impl/StaffServiceImpl.java
+75
-45
attendance-performance-manager/src/main/resources/sqlmap/module/door/DoorMapper.xml
...ager/src/main/resources/sqlmap/module/door/DoorMapper.xml
+569
-449
db/add.sql
db/add.sql
+28
-24
doc/考勤绩效管理系统.docx
doc/考勤绩效管理系统.docx
+0
-0
No files found.
attendance-performance-manager-ui/admin/src/views/perform/attend/record/drawershow.vue
View file @
84bb548f
...
@@ -29,11 +29,31 @@
...
@@ -29,11 +29,31 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属大厅:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
salaName
}}
</p>
<el-select
v-else
v-model=
"form.salaId"
style=
"width: 100%;"
disabled
>
<el-option
v-for=
"item in salaArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-form-item
label=
"所属部门:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
deptName
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
deptName
}}
</p>
<el-select
<el-select
v-else
v-else
v-model=
"form.deptId"
v-model=
"form.deptId"
...
@@ -87,7 +107,7 @@
...
@@ -87,7 +107,7 @@
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"异常时间:"
>
<el-form-item
label=
"异常时间:"
prop=
"errorTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
errorTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
errorTime
}}
</p>
<el-date-picker
<el-date-picker
v-else
v-else
...
@@ -103,7 +123,7 @@
...
@@ -103,7 +123,7 @@
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"实际打卡时间:"
>
<el-form-item
label=
"实际打卡时间:"
prop=
"actualAttendTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
actualAttendTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
actualAttendTime
}}
</p>
<el-date-picker
<el-date-picker
...
@@ -368,6 +388,16 @@ export default {
...
@@ -368,6 +388,16 @@ export default {
this
.
staffArr
=
[];
this
.
staffArr
=
[];
}
}
});
});
// 获取大厅列表
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
// 获取部门列表
// 获取部门列表
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
...
@@ -415,9 +445,12 @@ export default {
...
@@ -415,9 +445,12 @@ export default {
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
errorTime
:
[{
required
:
true
,
message
:
"
请选择异常时间
"
}],
actualAttendTime
:
[{
required
:
true
,
message
:
"
请选择实际打卡时间
"
}],
},
},
staffArr
:
[],
staffArr
:
[],
deptArr
:
[],
deptArr
:
[],
salaArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
fileList
:
[],
fileList
:
[],
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
...
@@ -465,9 +498,9 @@ export default {
...
@@ -465,9 +498,9 @@ export default {
this
.
$forceUpdate
(
this
.
form
);
this
.
$forceUpdate
(
this
.
form
);
},
},
staffChange
(
val
)
{
staffChange
(
val
)
{
console
.
log
(
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
salaId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
salaId
:
""
;
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -608,6 +641,8 @@ export default {
...
@@ -608,6 +641,8 @@ export default {
subAddType
:
""
,
subAddType
:
""
,
subMethod
:
""
,
subMethod
:
""
,
workNum
:
""
,
workNum
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
...
attendance-performance-manager-ui/admin/src/views/perform/complain/record/drawershow.vue
View file @
84bb548f
...
@@ -29,6 +29,27 @@
...
@@ -29,6 +29,27 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属大厅:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
salaName
}}
</p>
<el-select
v-else
v-model=
"form.salaId"
style=
"width: 100%;"
disabled
>
<el-option
v-for=
"item in salaArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-form-item
label=
"所属部门:"
>
...
@@ -155,7 +176,7 @@
...
@@ -155,7 +176,7 @@
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"投诉时间:"
>
<el-form-item
label=
"投诉时间:"
prop=
"complainTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
complainTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
complainTime
}}
</p>
<el-date-picker
<el-date-picker
...
@@ -415,6 +436,16 @@ export default {
...
@@ -415,6 +436,16 @@ export default {
this
.
staffArr
=
[];
this
.
staffArr
=
[];
}
}
});
});
// 获取大厅列表
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
// 获取部门列表
// 获取部门列表
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
...
@@ -455,11 +486,13 @@ export default {
...
@@ -455,11 +486,13 @@ export default {
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
complainTime
:
[{
required
:
true
,
message
:
"
请选择投诉时间
"
}],
},
},
staffArr
:
[],
staffArr
:
[],
deptArr
:
[],
deptArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
fileList
:
[],
fileList
:
[],
salaArr
:
[],
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
ruleArr
:
[],
ruleArr
:
[],
sourceArr
:
[
sourceArr
:
[
...
@@ -531,6 +564,7 @@ export default {
...
@@ -531,6 +564,7 @@ export default {
staffChange
(
val
)
{
staffChange
(
val
)
{
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
salaId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
salaId
:
""
;
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -609,6 +643,8 @@ export default {
...
@@ -609,6 +643,8 @@ export default {
remark
:
""
,
remark
:
""
,
filePaths
:
""
,
filePaths
:
""
,
fileNames
:
""
,
fileNames
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
open
=
true
;
this
.
open
=
true
;
...
@@ -693,6 +729,8 @@ export default {
...
@@ -693,6 +729,8 @@ export default {
score
:
""
,
score
:
""
,
processStatus
:
1
,
processStatus
:
1
,
remark
:
""
,
remark
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
...
attendance-performance-manager-ui/admin/src/views/perform/effect/record/drawershow.vue
View file @
84bb548f
...
@@ -29,6 +29,27 @@
...
@@ -29,6 +29,27 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属大厅:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
salaName
}}
</p>
<el-select
v-else
v-model=
"form.salaId"
style=
"width: 100%;"
disabled
>
<el-option
v-for=
"item in salaArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-form-item
label=
"所属部门:"
>
...
@@ -101,7 +122,7 @@
...
@@ -101,7 +122,7 @@
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"发生时间:"
>
<el-form-item
label=
"发生时间:"
prop=
"happenTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
happenTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
happenTime
}}
</p>
<el-date-picker
<el-date-picker
...
@@ -131,7 +152,7 @@
...
@@ -131,7 +152,7 @@
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"报警时间:"
>
<el-form-item
label=
"报警时间:"
prop=
"alarmTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
alarmTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
alarmTime
}}
</p>
<el-date-picker
<el-date-picker
...
@@ -385,6 +406,16 @@ export default {
...
@@ -385,6 +406,16 @@ export default {
this
.
staffArr
=
[];
this
.
staffArr
=
[];
}
}
});
});
// 获取大厅列表
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
// 获取部门列表
// 获取部门列表
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
...
@@ -425,6 +456,8 @@ export default {
...
@@ -425,6 +456,8 @@ export default {
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
alarmTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
happenTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
},
},
staffArr
:
[
staffArr
:
[
{
{
...
@@ -436,6 +469,7 @@ export default {
...
@@ -436,6 +469,7 @@ export default {
deptArr
:
[],
deptArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
fileList
:
[],
fileList
:
[],
salaArr
:
[],
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
ruleArr
:
[],
ruleArr
:
[],
sourceArr
:
[
sourceArr
:
[
...
@@ -504,6 +538,7 @@ export default {
...
@@ -504,6 +538,7 @@ export default {
console
.
log
(
val
);
console
.
log
(
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
salaId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
salaId
:
""
;
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -644,6 +679,8 @@ export default {
...
@@ -644,6 +679,8 @@ export default {
processStatus
:
1
,
processStatus
:
1
,
remark
:
""
,
remark
:
""
,
categoryId
:
""
,
categoryId
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
...
attendance-performance-manager-ui/admin/src/views/perform/gowork/record/drawershow.vue
View file @
84bb548f
...
@@ -29,6 +29,27 @@
...
@@ -29,6 +29,27 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属大厅:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
salaName
}}
</p>
<el-select
v-else
v-model=
"form.salaId"
style=
"width: 100%;"
disabled
>
<el-option
v-for=
"item in salaArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-form-item
label=
"所属部门:"
>
...
@@ -108,7 +129,7 @@
...
@@ -108,7 +129,7 @@
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"办件时间:"
>
<el-form-item
label=
"办件时间:"
prop=
"goworkTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
goworkTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
goworkTime
}}
</p>
<el-date-picker
<el-date-picker
...
@@ -355,6 +376,16 @@ export default {
...
@@ -355,6 +376,16 @@ export default {
this
.
staffArr
=
[];
this
.
staffArr
=
[];
}
}
});
});
// 获取大厅列表
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
// 获取部门列表
// 获取部门列表
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
...
@@ -395,6 +426,7 @@ export default {
...
@@ -395,6 +426,7 @@ export default {
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
goworkTime
:
[{
required
:
true
,
message
:
"
请选择办件时间
"
}],
},
},
staffArr
:
[],
staffArr
:
[],
deptArr
:
[],
deptArr
:
[],
...
@@ -402,6 +434,7 @@ export default {
...
@@ -402,6 +434,7 @@ export default {
fileList
:
[],
fileList
:
[],
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
ruleArr
:
[],
ruleArr
:
[],
salaArr
:
[],
sourceArr
:
[
sourceArr
:
[
{
{
label
:
"
窗口评价系统
"
,
label
:
"
窗口评价系统
"
,
...
@@ -469,9 +502,9 @@ export default {
...
@@ -469,9 +502,9 @@ export default {
this
.
$forceUpdate
(
this
.
form
);
this
.
$forceUpdate
(
this
.
form
);
},
},
staffChange
(
val
)
{
staffChange
(
val
)
{
console
.
log
(
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
salaId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
salaId
:
""
;
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -606,6 +639,8 @@ export default {
...
@@ -606,6 +639,8 @@ export default {
score
:
""
,
score
:
""
,
processStatus
:
1
,
processStatus
:
1
,
remark
:
""
,
remark
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
...
attendance-performance-manager-ui/admin/src/views/perform/other/record/drawershow.vue
View file @
84bb548f
...
@@ -29,6 +29,27 @@
...
@@ -29,6 +29,27 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属大厅:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
salaName
}}
</p>
<el-select
v-else
v-model=
"form.salaId"
style=
"width: 100%;"
disabled
>
<el-option
v-for=
"item in salaArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-form-item
label=
"所属部门:"
>
...
@@ -67,7 +88,7 @@
...
@@ -67,7 +88,7 @@
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"发生时间:"
>
<el-form-item
label=
"发生时间:"
prop=
"happenTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
happenTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
happenTime
}}
</p>
<el-date-picker
<el-date-picker
v-else
v-else
...
@@ -315,6 +336,16 @@ export default {
...
@@ -315,6 +336,16 @@ export default {
this
.
staffArr
=
[];
this
.
staffArr
=
[];
}
}
});
});
// 获取大厅列表
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
// 获取部门列表
// 获取部门列表
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
...
@@ -355,6 +386,7 @@ export default {
...
@@ -355,6 +386,7 @@ export default {
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
happenTime
:
[{
required
:
true
,
message
:
"
请选择发生时间
"
}],
},
},
staffArr
:
[],
staffArr
:
[],
deptArr
:
[],
deptArr
:
[],
...
@@ -362,6 +394,7 @@ export default {
...
@@ -362,6 +394,7 @@ export default {
fileList
:
[],
fileList
:
[],
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
ruleArr
:
[],
ruleArr
:
[],
salaArr
:
[],
sourceArr
:
[
sourceArr
:
[
{
{
label
:
"
窗口评价系统
"
,
label
:
"
窗口评价系统
"
,
...
@@ -432,6 +465,7 @@ export default {
...
@@ -432,6 +465,7 @@ export default {
console
.
log
(
val
);
console
.
log
(
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
salaId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
salaId
:
""
;
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -569,6 +603,8 @@ export default {
...
@@ -569,6 +603,8 @@ export default {
categoryId
:
""
,
categoryId
:
""
,
happenTime
:
""
,
happenTime
:
""
,
filePaths
:
""
,
filePaths
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
...
attendance-performance-manager-ui/admin/src/views/perform/review/record/drawershow.vue
View file @
84bb548f
...
@@ -29,6 +29,27 @@
...
@@ -29,6 +29,27 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属大厅:"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
salaName
}}
</p>
<el-select
v-else
v-model=
"form.salaId"
style=
"width: 100%;"
disabled
>
<el-option
v-for=
"item in salaArr"
:key=
"item.id"
:label=
"item.deptName"
:value=
"item.id"
>
</el-option
></el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"所属部门:"
>
<el-form-item
label=
"所属部门:"
>
...
@@ -120,7 +141,7 @@
...
@@ -120,7 +141,7 @@
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"22"
>
<el-col
:span=
"22"
>
<el-form-item
label=
"评价时间"
>
<el-form-item
label=
"评价时间"
prop=
"reviewTime"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
reviewTime
}}
</p>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
reviewTime
}}
</p>
<el-date-picker
<el-date-picker
...
@@ -370,6 +391,16 @@ export default {
...
@@ -370,6 +391,16 @@ export default {
this
.
staffArr
=
[];
this
.
staffArr
=
[];
}
}
});
});
// 获取大厅列表
this
.
$get
(
"
/dept/getSalaList
"
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
salaArr
=
res
.
data
.
data
;
}
})
.
catch
((
error
)
=>
{
this
.
$message
.
error
(
error
.
message
);
});
// 获取部门列表
// 获取部门列表
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/list
"
,
{
page
:
1
,
size
:
-
1
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
if
(
res
.
code
==
1
)
{
...
@@ -410,12 +441,14 @@ export default {
...
@@ -410,12 +441,14 @@ export default {
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
},
],
],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
createTime
:
[{
required
:
true
,
message
:
"
请选择创建时间
"
}],
reviewTime
:
[{
required
:
true
,
message
:
"
请选择评价时间
"
}],
},
},
staffArr
:
[],
staffArr
:
[],
deptArr
:
[],
deptArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
fileList
:
[],
fileList
:
[],
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
salaArr
:
[],
ruleArr
:
[],
ruleArr
:
[],
sourceArr
:
[
sourceArr
:
[
{
{
...
@@ -487,6 +520,7 @@ export default {
...
@@ -487,6 +520,7 @@ export default {
console
.
log
(
val
);
console
.
log
(
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
let
arr
=
this
.
staffArr
.
filter
((
v
)
=>
v
.
id
==
val
);
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
deptId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
deptId
:
""
;
this
.
form
.
salaId
=
arr
&&
arr
.
length
>
0
?
arr
[
0
].
salaId
:
""
;
},
},
/** 编辑 */
/** 编辑 */
edit
(
row
)
{
edit
(
row
)
{
...
@@ -627,6 +661,8 @@ export default {
...
@@ -627,6 +661,8 @@ export default {
windowNum
:
""
,
windowNum
:
""
,
workNum
:
""
,
workNum
:
""
,
categoryId
:
""
,
categoryId
:
""
,
salaId
:
null
,
salaName
:
""
,
};
};
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
},
},
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/summary/list.vue
View file @
84bb548f
...
@@ -111,13 +111,30 @@ export default {
...
@@ -111,13 +111,30 @@ export default {
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
姓名
"
,
prop
:
"
staffName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
,
formatter
:
this
.
formatter
},
{
label
:
"
工号
"
,
prop
:
"
workNum
"
,
formatter
:
this
.
formatter
,
width
:
80
,
},
{
label
:
"
手机号
"
,
prop
:
"
phoneNumber
"
,
formatter
:
this
.
formatter
},
{
label
:
"
手机号
"
,
prop
:
"
phoneNumber
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
所属大厅
"
,
prop
:
"
salaName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属大厅
"
,
prop
:
"
salaName
"
,
formatter
:
this
.
formatter
,
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
,
formatter
:
this
.
formatter
},
{
label
:
"
所属部门
"
,
prop
:
"
deptName
"
,
formatter
:
this
.
formatter
,
},
{
{
label
:
"
所属中心
"
,
label
:
"
所属中心
"
,
formatter
:
(
row
)
=>
{
formatter
:
(
row
)
=>
{
...
@@ -128,32 +145,129 @@ export default {
...
@@ -128,32 +145,129 @@ export default {
{
{
label
:
"
考勤绩效指标分数
"
,
label
:
"
考勤绩效指标分数
"
,
prop
:
"
attendScore
"
,
prop
:
"
attendScore
"
,
width
:
140
,
formatter
:
(
row
)
=>
{
console
.
log
(
row
,
this
.
tableData
.
dict
,
"
1111
"
);
return
(
this
.
tableData
.
dict
.
weightPdu
.
attendWeight
-
row
.
attendScore
).
toFixed
(
2
)
>
0
?
(
<
span
style
=
"
color:red
"
>
{
row
.
attendScore
+
"
(-
"
+
(
this
.
tableData
.
dict
.
weightPdu
.
attendWeight
-
row
.
attendScore
).
toFixed
(
2
)
+
"
)
"
}
<
/span
>
)
:
(
row
.
attendScore
+
`(
${(
this
.
tableData
.
dict
.
weightPdu
.
attendWeight
-
row
.
attendScore
).
toFixed
(
2
)}
)`
);
},
},
},
{
{
label
:
"
评价绩效指标分数
"
,
label
:
"
评价绩效指标分数
"
,
prop
:
"
reviewScore
"
,
prop
:
"
reviewScore
"
,
width
:
140
,
formatter
:
(
row
)
=>
{
return
(
this
.
tableData
.
dict
.
weightPdu
.
reviewWeight
-
row
.
reviewScore
).
toFixed
(
2
)
>
0
?
(
<
span
style
=
"
color:red
"
>
{
row
.
reviewScore
+
"
(-
"
+
(
this
.
tableData
.
dict
.
weightPdu
.
reviewWeight
-
row
.
reviewScore
).
toFixed
(
2
)
+
"
)
"
}
<
/span
>
)
:
(
row
.
reviewScore
+
`(
${(
this
.
tableData
.
dict
.
weightPdu
.
reviewWeight
-
row
.
reviewScore
).
toFixed
(
2
)}
)`
);
},
},
{
label
:
"
投诉绩效指标分数
"
,
prop
:
"
complainScore
"
,
},
},
// {
// label: "投诉绩效指标分数",
// prop: "complainScore",
// formatter: (row) => {
// return (
// row.complainScore +
// `(${this.tableData.dict.attendWeight - row.complainScore})`
// );
// },
// },
{
{
label
:
"
办件绩效分数
"
,
label
:
"
办件绩效分数
"
,
prop
:
"
goworkScore
"
,
prop
:
"
goworkScore
"
,
width
:
140
,
formatter
:
(
row
)
=>
{
return
(
this
.
tableData
.
dict
.
weightPdu
.
goworkWeight
-
row
.
goworkScore
).
toFixed
(
2
)
>
0
?
(
<
span
style
=
"
color:red
"
>
{
row
.
goworkScore
+
"
(-
"
+
(
this
.
tableData
.
dict
.
weightPdu
.
goworkWeight
-
row
.
goworkScore
).
toFixed
(
2
)
+
"
)
"
}
<
/span
>
)
:
(
row
.
goworkScore
+
`(
${(
this
.
tableData
.
dict
.
weightPdu
.
goworkWeight
-
row
.
goworkScore
).
toFixed
(
2
)}
)`
);
},
},
},
{
{
label
:
"
效能绩效分数
"
,
label
:
"
效能绩效分数
"
,
prop
:
"
effectScore
"
,
prop
:
"
effectScore
"
,
width
:
140
,
formatter
:
(
row
)
=>
{
return
(
this
.
tableData
.
dict
.
weightPdu
.
effectWeight
-
row
.
effectScore
).
toFixed
(
2
)
>
0
?
(
<
span
style
=
"
color:red
"
>
{
row
.
effectScore
+
"
(-
"
+
(
this
.
tableData
.
dict
.
weightPdu
.
effectWeight
-
row
.
effectScore
).
toFixed
(
2
)
+
"
)
"
}
<
/span
>
)
:
(
row
.
effectScore
+
`(
${(
this
.
tableData
.
dict
.
weightPdu
.
effectWeight
-
row
.
effectScore
).
toFixed
(
2
)}
)`
);
},
},
{
label
:
"
自评绩效分数
"
,
prop
:
"
otherScore
"
,
},
},
// {
// label: "自评绩效分数",
// prop: "otherScore",
// formatter: (row) => {
// return (
// row.attendScore +
// `(${this.tableData.dict.selfWeight - row.attendScore})`
// );
// },
// },
// {
// {
// label: "累计异常分数",
// label: "累计异常分数",
// prop: "errorScore",
// prop: "errorScore",
...
@@ -167,7 +281,7 @@ export default {
...
@@ -167,7 +281,7 @@ export default {
{
label
:
"
月
"
,
prop
:
"
month
"
,
formatter
:
this
.
formatter
},
{
label
:
"
月
"
,
prop
:
"
month
"
,
formatter
:
this
.
formatter
},
{
{
label
:
"
操作
"
,
label
:
"
操作
"
,
width
:
24
0
,
width
:
12
0
,
formatter
:
(
row
)
=>
{
formatter
:
(
row
)
=>
{
return
(
return
(
<
table
-
buttons
<
table
-
buttons
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncRegisterUserPicTaskImpl.java
View file @
84bb548f
package
com.mortals.xhx.daemon.task
;
package
com.mortals.xhx.daemon.task
;
import
cn.hutool.http.HttpUtil
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.framework.utils.ServletUtils
;
import
com.mortals.framework.utils.ServletUtils
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.base.system.upload.service.UploadService
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.door.model.DoorQuery
;
import
com.mortals.xhx.module.door.service.DoorService
;
import
com.mortals.xhx.module.hik.face.model.req.img.ImgReq
;
import
com.mortals.xhx.module.hik.face.model.req.img.ImgReq
;
import
com.mortals.xhx.module.hik.face.service.IHikFaceService
;
import
com.mortals.xhx.module.hik.face.service.IHikFaceService
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.model.StaffEntity
;
import
com.mortals.xhx.module.staff.model.StaffQuery
;
import
com.mortals.xhx.module.staff.model.StaffQuery
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.checkerframework.checker.units.qual.A
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -38,11 +38,25 @@ public class SyncRegisterUserPicTaskImpl implements ITaskExcuteService {
...
@@ -38,11 +38,25 @@ public class SyncRegisterUserPicTaskImpl implements ITaskExcuteService {
@Autowired
@Autowired
private
StaffService
staffService
;
private
StaffService
staffService
;
@Value
(
"${hik.host:}"
)
protected
String
hikhost
;
@Autowired
private
DoorService
doorService
;
@Override
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
info
(
"同步员工照片任务"
);
log
.
info
(
"同步员工照片任务"
);
syncRegisterUsersPhotos
();
if
(!
ObjectUtils
.
isEmpty
(
hikhost
))
{
staffService
.
syncRegisterUsersPhotos
();
}
else
{
List
<
DoorEntity
>
doorEntities
=
doorService
.
find
(
new
DoorQuery
());
for
(
DoorEntity
doorEntity
:
doorEntities
)
{
//todo 直连设备
}
}
// syncRegisterUsersPhotos();
log
.
info
(
"同步员工任务照片完成"
);
log
.
info
(
"同步员工任务照片完成"
);
}
}
...
@@ -53,7 +67,6 @@ public class SyncRegisterUserPicTaskImpl implements ITaskExcuteService {
...
@@ -53,7 +67,6 @@ public class SyncRegisterUserPicTaskImpl implements ITaskExcuteService {
.
filter
(
item
->
ObjectUtils
.
isEmpty
(
item
.
getPhotoPath
()))
.
filter
(
item
->
ObjectUtils
.
isEmpty
(
item
.
getPhotoPath
()))
.
filter
(
item
->
!
ObjectUtils
.
isEmpty
(
item
.
getPicUri
())).
collect
(
Collectors
.
toList
());
.
filter
(
item
->
!
ObjectUtils
.
isEmpty
(
item
.
getPicUri
())).
collect
(
Collectors
.
toList
());
for
(
StaffEntity
staff
:
staffList
)
{
for
(
StaffEntity
staff
:
staffList
)
{
ImgReq
imgReq
=
new
ImgReq
();
ImgReq
imgReq
=
new
ImgReq
();
imgReq
.
setServerIndexCode
(
staff
.
getServerIndexCode
());
imgReq
.
setServerIndexCode
(
staff
.
getServerIndexCode
());
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
84bb548f
...
@@ -23,6 +23,7 @@ import com.mortals.xhx.module.staff.service.StaffLeaveService;
...
@@ -23,6 +23,7 @@ import com.mortals.xhx.module.staff.service.StaffLeaveService;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
...
@@ -47,10 +48,13 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -47,10 +48,13 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
private
IHikPersonService
hikPersonService
;
private
IHikPersonService
hikPersonService
;
@Autowired
@Autowired
private
IDingPersonService
dingPersonService
;
private
IDingPersonService
dingPersonService
;
@Value
(
"${hik.host:}"
)
protected
String
hikhost
;
@Override
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
try
{
try
{
if
(!
ObjectUtils
.
isEmpty
(
hikhost
))
{
log
.
info
(
"同步部门"
);
log
.
info
(
"同步部门"
);
deptService
.
syncDept
(
null
);
deptService
.
syncDept
(
null
);
log
.
info
(
"同步用户"
);
log
.
info
(
"同步用户"
);
...
@@ -94,6 +98,17 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
...
@@ -94,6 +98,17 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"同步钉钉usreId失败"
);
log
.
error
(
"同步钉钉usreId失败"
);
}
}
}
else
{
//todo 设备直连
deptService
.
syncDeptByDevice
(
null
);
staffService
.
syncPersonsByDevices
(
null
);
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"同步人事异常"
,
e
);
log
.
error
(
"同步人事异常"
,
e
);
}
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
View file @
84bb548f
...
@@ -91,4 +91,12 @@ public interface DeptService extends ICRUDService<DeptEntity, Long> {
...
@@ -91,4 +91,12 @@ public interface DeptService extends ICRUDService<DeptEntity, Long> {
*/
*/
Rest
<
String
>
syncDept
(
Context
context
);
Rest
<
String
>
syncDept
(
Context
context
);
/**
* 通过设备同步部门信息
* @param context
* @return
*/
Rest
<
String
>
syncDeptByDevice
(
Context
context
);
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
View file @
84bb548f
...
@@ -341,4 +341,12 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
...
@@ -341,4 +341,12 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
return
Rest
.
ok
();
return
Rest
.
ok
();
}
}
@Override
public
Rest
<
String
>
syncDeptByDevice
(
Context
context
)
{
//todo
return
Rest
.
ok
();
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorEntity.java
View file @
84bb548f
package
com.mortals.xhx.module.door.model
;
package
com.mortals.xhx.module.door.model
;
import
java.util.List
;
import
java.util.ArrayList
;
import
java.math.BigDecimal
;
import
cn.hutool.core.date.DateUtil
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mortals.framework.annotation.Excel
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.door.model.vo.DoorVo
;
import
com.mortals.xhx.module.door.model.vo.DoorVo
;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
* 门禁设备实体对象
* 门禁设备实体对象
*
*
* @author zxfei
* @author zxfei
* @date 2023-11-22
* @date 2024-03-18
*/
*/
@Data
@Data
public
class
DoorEntity
extends
DoorVo
{
public
class
DoorEntity
extends
DoorVo
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
@@ -35,6 +43,18 @@ public class DoorEntity extends DoorVo {
...
@@ -35,6 +43,18 @@ public class DoorEntity extends DoorVo {
* 密码
* 密码
*/
*/
private
String
password
;
private
String
password
;
/**
* 所属部门id
*/
private
String
deptId
;
/**
* 所属部门名称
*/
private
String
deptName
;
/**
* 备注
*/
private
String
remark
;
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
return
this
.
getId
().
hashCode
();
return
this
.
getId
().
hashCode
();
...
@@ -58,5 +78,8 @@ public class DoorEntity extends DoorVo {
...
@@ -58,5 +78,8 @@ public class DoorEntity extends DoorVo {
this
.
port
=
0
;
this
.
port
=
0
;
this
.
username
=
""
;
this
.
username
=
""
;
this
.
password
=
""
;
this
.
password
=
""
;
this
.
deptId
=
""
;
this
.
deptName
=
""
;
this
.
remark
=
""
;
}
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/model/DoorQuery.java
View file @
84bb548f
package
com.mortals.xhx.module.door.model
;
package
com.mortals.xhx.module.door.model
;
import
java.util.List
;
import
java.util.List
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
/**
/**
* 门禁设备查询对象
* 门禁设备查询对象
*
*
* @author zxfei
* @author zxfei
* @date 2023-11-22
* @date 2024-03-18
*/
*/
public
class
DoorQuery
extends
DoorEntity
{
public
class
DoorQuery
extends
DoorEntity
{
/** 开始 序号,主键,自增长 */
/** 开始 序号,主键,自增长 */
private
Long
idStart
;
private
Long
idStart
;
...
@@ -106,6 +106,21 @@ public class DoorQuery extends DoorEntity {
...
@@ -106,6 +106,21 @@ public class DoorQuery extends DoorEntity {
/** 结束 修改时间 */
/** 结束 修改时间 */
private
String
updateTimeEnd
;
private
String
updateTimeEnd
;
/** 所属部门id */
private
List
<
String
>
deptIdList
;
/** 所属部门id排除列表 */
private
List
<
String
>
deptIdNotList
;
/** 所属部门名称 */
private
List
<
String
>
deptNameList
;
/** 所属部门名称排除列表 */
private
List
<
String
>
deptNameNotList
;
/** 备注 */
private
List
<
String
>
remarkList
;
/** 备注排除列表 */
private
List
<
String
>
remarkNotList
;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private
List
<
DoorQuery
>
orConditionList
;
private
List
<
DoorQuery
>
orConditionList
;
...
@@ -662,6 +677,102 @@ public class DoorQuery extends DoorEntity {
...
@@ -662,6 +677,102 @@ public class DoorQuery extends DoorEntity {
this
.
updateTimeEnd
=
updateTimeEnd
;
this
.
updateTimeEnd
=
updateTimeEnd
;
}
}
/**
* 获取 所属部门id
* @return deptIdList
*/
public
List
<
String
>
getDeptIdList
(){
return
this
.
deptIdList
;
}
/**
* 设置 所属部门id
* @param deptIdList
*/
public
void
setDeptIdList
(
List
<
String
>
deptIdList
){
this
.
deptIdList
=
deptIdList
;
}
/**
* 获取 所属部门id
* @return deptIdNotList
*/
public
List
<
String
>
getDeptIdNotList
(){
return
this
.
deptIdNotList
;
}
/**
* 设置 所属部门id
* @param deptIdNotList
*/
public
void
setDeptIdNotList
(
List
<
String
>
deptIdNotList
){
this
.
deptIdNotList
=
deptIdNotList
;
}
/**
* 获取 所属部门名称
* @return deptNameList
*/
public
List
<
String
>
getDeptNameList
(){
return
this
.
deptNameList
;
}
/**
* 设置 所属部门名称
* @param deptNameList
*/
public
void
setDeptNameList
(
List
<
String
>
deptNameList
){
this
.
deptNameList
=
deptNameList
;
}
/**
* 获取 所属部门名称
* @return deptNameNotList
*/
public
List
<
String
>
getDeptNameNotList
(){
return
this
.
deptNameNotList
;
}
/**
* 设置 所属部门名称
* @param deptNameNotList
*/
public
void
setDeptNameNotList
(
List
<
String
>
deptNameNotList
){
this
.
deptNameNotList
=
deptNameNotList
;
}
/**
* 获取 备注
* @return remarkList
*/
public
List
<
String
>
getRemarkList
(){
return
this
.
remarkList
;
}
/**
* 设置 备注
* @param remarkList
*/
public
void
setRemarkList
(
List
<
String
>
remarkList
){
this
.
remarkList
=
remarkList
;
}
/**
* 获取 备注
* @return remarkNotList
*/
public
List
<
String
>
getRemarkNotList
(){
return
this
.
remarkNotList
;
}
/**
* 设置 备注
* @param remarkNotList
*/
public
void
setRemarkNotList
(
List
<
String
>
remarkNotList
){
this
.
remarkNotList
=
remarkNotList
;
}
/**
/**
* 设置 序号,主键,自增长
* 设置 序号,主键,自增长
* @param id
* @param id
...
@@ -975,6 +1086,63 @@ public class DoorQuery extends DoorEntity {
...
@@ -975,6 +1086,63 @@ public class DoorQuery extends DoorEntity {
}
}
/**
* 设置 所属部门id
* @param deptId
*/
public
DoorQuery
deptId
(
String
deptId
){
setDeptId
(
deptId
);
return
this
;
}
/**
* 设置 所属部门id
* @param deptIdList
*/
public
DoorQuery
deptIdList
(
List
<
String
>
deptIdList
){
this
.
deptIdList
=
deptIdList
;
return
this
;
}
/**
* 设置 所属部门名称
* @param deptName
*/
public
DoorQuery
deptName
(
String
deptName
){
setDeptName
(
deptName
);
return
this
;
}
/**
* 设置 所属部门名称
* @param deptNameList
*/
public
DoorQuery
deptNameList
(
List
<
String
>
deptNameList
){
this
.
deptNameList
=
deptNameList
;
return
this
;
}
/**
* 设置 备注
* @param remark
*/
public
DoorQuery
remark
(
String
remark
){
setRemark
(
remark
);
return
this
;
}
/**
* 设置 备注
* @param remarkList
*/
public
DoorQuery
remarkList
(
List
<
String
>
remarkList
){
this
.
remarkList
=
remarkList
;
return
this
;
}
/**
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
* @return orConditionList
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
View file @
84bb548f
...
@@ -51,11 +51,6 @@ public class DoorServiceImpl extends AbstractCRUDServiceImpl<DoorDao, DoorEntity
...
@@ -51,11 +51,6 @@ public class DoorServiceImpl extends AbstractCRUDServiceImpl<DoorDao, DoorEntity
@Autowired
@Autowired
private
IHikDoorService
hikDoorService
;
private
IHikDoorService
hikDoorService
;
private
Integer
day
;
@Autowired
private
ICacheService
cacheService
;
@Override
@Override
public
Rest
<
Void
>
syncDoorDeviceEvents
(
DoorEntity
doorEntity
,
HikDoorEventReq
hikDoorEventReq
)
{
public
Rest
<
Void
>
syncDoorDeviceEvents
(
DoorEntity
doorEntity
,
HikDoorEventReq
hikDoorEventReq
)
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/StaffService.java
View file @
84bb548f
...
@@ -53,4 +53,10 @@ public interface StaffService extends ICRUDCacheService<StaffEntity,Long> {
...
@@ -53,4 +53,10 @@ public interface StaffService extends ICRUDCacheService<StaffEntity,Long> {
*/
*/
void
doUpdateSala
();
void
doUpdateSala
();
/**
* 通过海康云同步用户 照片
* @return
*/
Rest
<
Void
>
syncRegisterUsersPhotos
();
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
View file @
84bb548f
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/resources/sqlmap/module/door/DoorMapper.xml
View file @
84bb548f
This diff is collapsed.
Click to expand it.
db/add.sql
View file @
84bb548f
...
@@ -1175,29 +1175,6 @@ ADD COLUMN `salaId` bigint(20) COMMENT '所属大厅' AFTER `deptName`,
...
@@ -1175,29 +1175,6 @@ ADD COLUMN `salaId` bigint(20) COMMENT '所属大厅' AFTER `deptName`,
ADD
COLUMN
`salaName`
varchar
(
128
)
COMMENT
'所属大厅名称'
AFTER
`salaId`
;
ADD
COLUMN
`salaName`
varchar
(
128
)
COMMENT
'所属大厅名称'
AFTER
`salaId`
;
-- ----------------------------
2024
-
02
-
29
-- ----------------------------
-- ----------------------------
-- 门禁设备表
-- ----------------------------
DROP
TABLE
IF
EXISTS
`mortals_xhx_door`
;
CREATE
TABLE
mortals_xhx_door
(
`id`
bigint
(
20
)
AUTO_INCREMENT
COMMENT
'序号,主键,自增长'
,
`deviceName`
varchar
(
64
)
COMMENT
'设备名称'
,
`deviceCode`
varchar
(
64
)
COMMENT
'设备编码'
,
`ip`
varchar
(
64
)
COMMENT
'Ip地址'
,
`port`
int
(
9
)
COMMENT
'端口'
,
`username`
varchar
(
64
)
COMMENT
'用户名'
,
`password`
varchar
(
64
)
COMMENT
'密码'
,
`createTime`
datetime
COMMENT
'创建时间'
,
`createUserId`
bigint
(
20
)
COMMENT
'创建用户'
,
`updateUserId`
bigint
(
20
)
COMMENT
'更新用户'
,
`updateTime`
datetime
COMMENT
'修改时间'
,
PRIMARY
KEY
(
`id`
)
,
KEY
`deviceCode`
(
`deviceCode`
)
USING
BTREE
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
COMMENT
=
'门禁设备'
;
-- ------------------
-- ------------------
-- 2024-03-12
-- 2024-03-12
-- 绩效表增加人员大厅字段
-- 绩效表增加人员大厅字段
...
@@ -1271,3 +1248,30 @@ ALTER TABLE `mortals_xhx_staff_perform_stat`
...
@@ -1271,3 +1248,30 @@ ALTER TABLE `mortals_xhx_staff_perform_stat`
ALTER
TABLE
`mortals_xhx_staff_perform_summary`
ALTER
TABLE
`mortals_xhx_staff_perform_summary`
ADD
COLUMN
`salaId`
bigint
(
20
)
DEFAULT
NULL
COMMENT
'所属大厅'
AFTER
`deptName`
,
ADD
COLUMN
`salaId`
bigint
(
20
)
DEFAULT
NULL
COMMENT
'所属大厅'
AFTER
`deptName`
,
ADD
COLUMN
`salaName`
varchar
(
128
)
DEFAULT
NULL
COMMENT
'所属大厅名称'
AFTER
`salaId`
;
ADD
COLUMN
`salaName`
varchar
(
128
)
DEFAULT
NULL
COMMENT
'所属大厅名称'
AFTER
`salaId`
;
-- ----------------------------
2024
-
03
-
18
-- ----------------------------
-- ----------------------------
-- 门禁设备表
-- ----------------------------
DROP
TABLE
IF
EXISTS
`mortals_xhx_door`
;
CREATE
TABLE
mortals_xhx_door
(
`id`
bigint
(
20
)
AUTO_INCREMENT
COMMENT
'序号,主键,自增长'
,
`deviceName`
varchar
(
64
)
COMMENT
'设备名称'
,
`deviceCode`
varchar
(
64
)
COMMENT
'设备编码'
,
`ip`
varchar
(
64
)
COMMENT
'Ip地址'
,
`port`
int
(
9
)
COMMENT
'端口'
,
`username`
varchar
(
64
)
COMMENT
'用户名'
,
`password`
varchar
(
64
)
COMMENT
'密码'
,
`createTime`
datetime
COMMENT
'创建时间'
,
`createUserId`
bigint
(
20
)
COMMENT
'创建用户'
,
`updateUserId`
bigint
(
20
)
COMMENT
'更新用户'
,
`updateTime`
datetime
COMMENT
'修改时间'
,
`deptId`
bigint
(
20
)
COMMENT
'所属部门id'
,
`deptName`
varchar
(
64
)
COMMENT
'所属部门名称'
,
`remark`
varchar
(
256
)
COMMENT
'备注'
,
PRIMARY
KEY
(
`id`
)
,
KEY
`deviceCode`
(
`deviceCode`
)
USING
BTREE
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
COMMENT
=
'门禁设备'
;
doc/考勤绩效管理系统.docx
View file @
84bb548f
No preview for this file type
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