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
81b38a24
Commit
81b38a24
authored
Jul 15, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
0cac0506
ca3a158d
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
9737 additions
and
9207 deletions
+9737
-9207
attendance-performance-manager-ui/admin/src/components/Header.vue
...ce-performance-manager-ui/admin/src/components/Header.vue
+5
-7
attendance-performance-manager-ui/admin/src/views/check/attend/record/drawershow.vue
...ger-ui/admin/src/views/check/attend/record/drawershow.vue
+4
-2
attendance-performance-manager-ui/admin/src/views/check/complain/record/drawershow.vue
...r-ui/admin/src/views/check/complain/record/drawershow.vue
+3
-2
attendance-performance-manager-ui/admin/src/views/check/effect/record/drawershow.vue
...ger-ui/admin/src/views/check/effect/record/drawershow.vue
+3
-2
attendance-performance-manager-ui/admin/src/views/check/gowork/record/drawershow.vue
...ger-ui/admin/src/views/check/gowork/record/drawershow.vue
+3
-2
attendance-performance-manager-ui/admin/src/views/check/other/record/drawershow.vue
...ager-ui/admin/src/views/check/other/record/drawershow.vue
+3
-2
attendance-performance-manager-ui/admin/src/views/check/review/record/drawershow.vue
...ger-ui/admin/src/views/check/review/record/drawershow.vue
+3
-2
attendance-performance-manager-ui/admin/src/views/homeCharts/record/list.vue
...nce-manager-ui/admin/src/views/homeCharts/record/list.vue
+305
-155
attendance-performance-manager-ui/admin/yarn.lock
attendance-performance-manager-ui/admin/yarn.lock
+9034
-9019
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/PerformAttendAppealDao.java
...ortals/xhx/module/perform/dao/PerformAttendAppealDao.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/ibatis/PerformAttendAppealDaoImpl.java
...module/perform/dao/ibatis/PerformAttendAppealDaoImpl.java
+6
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/vo/AppealSummaryQuery.java
...rtals/xhx/module/perform/model/vo/AppealSummaryQuery.java
+16
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/PerformAttendAppealService.java
...hx/module/perform/service/PerformAttendAppealService.java
+7
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendAppealServiceImpl.java
.../perform/service/impl/PerformAttendAppealServiceImpl.java
+32
-13
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/web/PerformAttendAppealController.java
...xhx/module/perform/web/PerformAttendAppealController.java
+43
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/StaffPerformStatDao.java
...com/mortals/xhx/module/staff/dao/StaffPerformStatDao.java
+18
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/ibatis/StaffPerformStatDaoImpl.java
.../xhx/module/staff/dao/ibatis/StaffPerformStatDaoImpl.java
+15
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/StaffPerformStatService.java
...als/xhx/module/staff/service/StaffPerformStatService.java
+7
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffPerformStatServiceImpl.java
...odule/staff/service/impl/StaffPerformStatServiceImpl.java
+38
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffPerformStatController.java
...tals/xhx/module/staff/web/StaffPerformStatController.java
+69
-1
attendance-performance-manager/src/main/resources/sqlmap/module/perform/PerformAttendAppealMapperExt.xml
...es/sqlmap/module/perform/PerformAttendAppealMapperExt.xml
+21
-0
attendance-performance-manager/src/main/resources/sqlmap/module/staff/StaffPerformStatMapperExt.xml
...sources/sqlmap/module/staff/StaffPerformStatMapperExt.xml
+94
-0
No files found.
attendance-performance-manager-ui/admin/src/components/Header.vue
View file @
81b38a24
...
@@ -11,11 +11,11 @@
...
@@ -11,11 +11,11 @@
<router-link
to=
"/"
>
<router-link
to=
"/"
>
<img
<img
src=
"../assets/images/logo.png"
src=
"../assets/images/logo.png"
style=
"margin-bottom:
5px;margin-left: 24px;
"
style=
"margin-bottom:
5px; margin-left: 24px
"
height=
"40"
height=
"40"
alt=
""
alt=
""
/>
/>
<b
style=
"color:
white;font-size:20px;
"
>
<b
style=
"color:
white; font-size: 20px
"
>
智慧政务绩效管理系统
智慧政务绩效管理系统
</b>
</b>
...
@@ -43,14 +43,14 @@
...
@@ -43,14 +43,14 @@
</el-badge>
</el-badge>
</div>
-->
</div>
-->
<div
class=
"controllBar"
@
click=
"returnHome"
>
<div
class=
"controllBar"
@
click=
"returnHome"
>
<i
class=
"el-icon-s-home"
style=
"font-size: 15px;margin-right: 10px"
>
<i
class=
"el-icon-s-home"
style=
"font-size: 15px;
margin-right: 10px"
>
首页
</i
首页
</i
>
>
</div>
</div>
<div
class=
"layout-profile"
>
<div
class=
"layout-profile"
>
<el-dropdown
@
command=
"handleCommand"
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
style=
"color:white"
>
<span
class=
"el-dropdown-link"
style=
"color:
white"
>
{{
userData
.
currUserName
}}
{{
userData
.
currUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
</span>
...
@@ -124,9 +124,7 @@ export default {
...
@@ -124,9 +124,7 @@ export default {
beforeDestroy
()
{
beforeDestroy
()
{
console
.
log
(
"
beforeDestroy
"
);
console
.
log
(
"
beforeDestroy
"
);
},
},
mounted
()
{
mounted
()
{},
console
.
log
(
this
.
menu
);
},
computed
:
{
computed
:
{
group
()
{
group
()
{
const
relativeGroup
=
this
.
$store
.
state
.
group
;
const
relativeGroup
=
this
.
$store
.
state
.
group
;
...
...
attendance-performance-manager-ui/admin/src/views/check/attend/record/drawershow.vue
View file @
81b38a24
...
@@ -137,9 +137,9 @@
...
@@ -137,9 +137,9 @@
<el-row>
<el-row>
<el-form-item
label=
"加分/扣除分值:"
>
<el-form-item
label=
"加分/扣除分值:"
>
<p
v-if=
"form.view == '查看'"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}
{{
form
.
score
?
form
.
score
:
"
--
"
}}
</p>
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
<p
v-else
>
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
}}
</p>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
</div>
</div>
...
@@ -368,10 +368,12 @@ export default {
...
@@ -368,10 +368,12 @@ export default {
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
urls
:{
saveUrl
:
'
/check/attend/record/examine
'
}
//重写核查地址
};
};
},
},
computed
:
{},
computed
:
{},
methods
:
{
methods
:
{
// 审核
radioChange
(
val
)
{
radioChange
(
val
)
{
console
.
log
(
val
);
console
.
log
(
val
);
this
.
form
.
checkResult
=
val
;
this
.
form
.
checkResult
=
val
;
...
...
attendance-performance-manager-ui/admin/src/views/check/complain/record/drawershow.vue
View file @
81b38a24
...
@@ -153,9 +153,9 @@
...
@@ -153,9 +153,9 @@
<el-row>
<el-row>
<el-form-item
label=
"加分/扣除分值:"
>
<el-form-item
label=
"加分/扣除分值:"
>
<p
v-if=
"form.view == '查看'"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}
{{
form
.
score
?
form
.
score
:
"
--
"
}}
</p>
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
<p
v-else
>
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}
{{
form
.
score
}}
</p>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
</div>
</div>
...
@@ -404,6 +404,7 @@ export default {
...
@@ -404,6 +404,7 @@ export default {
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
urls
:{
saveUrl
:
'
/check/complain/record/examine
'
}
//重写核查地址
};
};
},
},
...
...
attendance-performance-manager-ui/admin/src/views/check/effect/record/drawershow.vue
View file @
81b38a24
...
@@ -132,9 +132,9 @@
...
@@ -132,9 +132,9 @@
<el-row>
<el-row>
<el-form-item
label=
"加分/扣除分值:"
>
<el-form-item
label=
"加分/扣除分值:"
>
<p
v-if=
"form.view == '查看'"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}
{{
form
.
score
?
form
.
score
:
"
--
"
}}
</p>
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
<p
v-else
>
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}
{{
form
.
score
}}
</p>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
</div>
</div>
...
@@ -377,6 +377,7 @@ export default {
...
@@ -377,6 +377,7 @@ export default {
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
urls
:{
saveUrl
:
'
/check/effect/record/examine
'
}
//重写核查地址
};
};
},
},
...
...
attendance-performance-manager-ui/admin/src/views/check/gowork/record/drawershow.vue
View file @
81b38a24
...
@@ -134,9 +134,9 @@
...
@@ -134,9 +134,9 @@
<el-row>
<el-row>
<el-form-item
label=
"加分/扣除分值:"
>
<el-form-item
label=
"加分/扣除分值:"
>
<p
v-if=
"form.view == '查看'"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
?
form
.
score
:
"
--
"
}}
</p>
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
<p
v-else
>
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
}}
</p>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
</div>
</div>
...
@@ -372,6 +372,7 @@ export default {
...
@@ -372,6 +372,7 @@ export default {
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
urls
:{
saveUrl
:
'
/check/gowork/record/examine
'
}
//重写核查地址
};
};
},
},
...
...
attendance-performance-manager-ui/admin/src/views/check/other/record/drawershow.vue
View file @
81b38a24
...
@@ -128,9 +128,9 @@
...
@@ -128,9 +128,9 @@
<el-row>
<el-row>
<el-form-item
label=
"加分/扣除分值:"
>
<el-form-item
label=
"加分/扣除分值:"
>
<p
v-if=
"form.view == '查看'"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
?
form
.
score
:
"
--
"
}}
</p>
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
<p
v-else
>
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
}}
</p>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
</div>
</div>
...
@@ -367,6 +367,7 @@ export default {
...
@@ -367,6 +367,7 @@ export default {
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
baseUrl
:
process
.
env
.
VUE_APP_API_BASE_URL
+
"
/
"
,
urls
:{
saveUrl
:
'
/check/other/record/examine
'
}
//重写核查地址
};
};
},
},
...
...
attendance-performance-manager-ui/admin/src/views/check/review/record/drawershow.vue
View file @
81b38a24
...
@@ -135,9 +135,9 @@
...
@@ -135,9 +135,9 @@
<el-row>
<el-row>
<el-form-item
label=
"加分/扣除分值:"
>
<el-form-item
label=
"加分/扣除分值:"
>
<p
v-if=
"form.view == '查看'"
>
<p
v-if=
"form.view == '查看'"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
?
form
.
score
:
"
--
"
}}
</p>
</p>
<p
v-else
>
{{
form
.
score
}}
</p>
<p
v-else
>
{{
form
.
subAddType
==
1
?
'
+
'
:
'
-
'
}}{{
form
.
score
}}
</p>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
</div>
</div>
...
@@ -374,6 +374,7 @@ export default {
...
@@ -374,6 +374,7 @@ export default {
form
:
{},
form
:
{},
kaoqinCateArr
:
[],
kaoqinCateArr
:
[],
kaoqinArr
:
[],
kaoqinArr
:
[],
urls
:{
saveUrl
:
'
/check/review/record/examine
'
}
//重写核查地址
};
};
},
},
...
...
attendance-performance-manager-ui/admin/src/views/homeCharts/record/list.vue
View file @
81b38a24
...
@@ -5,26 +5,39 @@
...
@@ -5,26 +5,39 @@
<div
class=
"title"
>
<div
class=
"title"
>
部门绩效总分排名TOP10
部门绩效总分排名TOP10
<div
class=
"button_box"
>
<div
class=
"button_box"
>
<span>
今年
</span>
<span
<span
class=
"check"
>
本月
</span>
:class=
"
{ check: v.value == depAttendanceTopDate }"
<span>
今日
</span>
v-for="v in searchTimes"
:key="v.value"
@click="changeDate('depAttendanceTopDate', v.value)"
>
{{
v
.
label
}}
</span
>
</div>
</div>
</div>
</div>
<dv-scroll-ranking-board
<dv-scroll-ranking-board
:config=
"config"
:config=
"config"
style=
"width:
100%;height:
75%"
style=
"width:
100%; height:
75%"
/>
/>
</div>
</div>
<div
class=
"left_mid"
>
<div
class=
"left_mid"
>
<div
class=
"button_box"
>
<div
class=
"title"
>
<span>
今年
</span>
异常分值分布情况
<span
class=
"check"
>
本月
</span>
<div
class=
"button_box"
>
<span>
今日
</span>
<span
:class=
"
{ check: v.value == abnormalDisDate }"
v-for="v in searchTimes"
:key="v.value"
@click="changeDate('abnormalDisDate', v.value)"
>
{{
v
.
label
}}
</span
>
</div>
</div>
</div>
<div
id=
"leida"
style=
"width: 100%;height: 100%;"
></div>
<div
id=
"leida"
style=
"width: 100%; height: 90%"
></div>
</div>
</div>
<div
class=
"left_down"
>
<div
class=
"left_down"
>
<div
id=
"rulePie"
style=
"width: 100%;height: 100%;"
></div>
<div
class=
"title"
>
绩效规则分布情况
</div>
<div
id=
"rulePie"
style=
"width: 100%; height: 90%"
></div>
</div>
</div>
</div>
</div>
<div
class=
"mid"
>
<div
class=
"mid"
>
...
@@ -138,7 +151,7 @@
...
@@ -138,7 +151,7 @@
<div
class=
"mid_down"
>
<div
class=
"mid_down"
>
<div
class=
"down_content"
>
<div
class=
"down_content"
>
<img
class=
"content_title"
src=
"../../../assets/images/title.png"
/>
<img
class=
"content_title"
src=
"../../../assets/images/title.png"
/>
<div
style=
"margin: 20px 0
;
"
>
<div
style=
"margin: 20px 0"
>
<el-radio-group
v-model=
"type"
border
>
<el-radio-group
v-model=
"type"
border
>
<el-radio-button
label=
"1"
>
部门评估
</el-radio-button>
<el-radio-button
label=
"1"
>
部门评估
</el-radio-button>
<el-radio-button
label=
"2"
>
个人评估
</el-radio-button>
<el-radio-button
label=
"2"
>
个人评估
</el-radio-button>
...
@@ -150,7 +163,7 @@
...
@@ -150,7 +163,7 @@
<el-select
<el-select
v-model=
"form.region"
v-model=
"form.region"
placeholder=
"请选择部门"
placeholder=
"请选择部门"
style=
"width: 100%
;
"
style=
"width: 100%"
>
>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域一"
value=
"shanghai"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
<el-option
label=
"区域二"
value=
"beijing"
></el-option>
...
@@ -161,21 +174,21 @@
...
@@ -161,21 +174,21 @@
type=
"date"
type=
"date"
placeholder=
"选择日期"
placeholder=
"选择日期"
v-model=
"form.date1"
v-model=
"form.date1"
style=
"width: 100%
;
"
style=
"width: 100%"
></el-date-picker>
></el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item
label=
"请选择类型:"
style=
"text-align: left
;
"
>
<el-form-item
label=
"请选择类型:"
style=
"text-align: left"
>
<el-radio-group
v-model=
"form.resource"
>
<el-radio-group
v-model=
"form.resource"
>
<el-radio
label=
"0
"
>
按年
</el-radio>
<el-radio
:label=
"1
"
>
按年
</el-radio>
<el-radio
label=
"1
"
>
按月
</el-radio>
<el-radio
:label=
"2
"
>
按月
</el-radio>
<el-radio
label=
"2
"
>
按天
</el-radio>
<el-radio
:label=
"3
"
>
按天
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
<el-button
type=
"primary"
type=
"primary"
@
click=
"onSubmit"
@
click=
"onSubmit"
style=
"margin-top: 20px;
transform: translateX(-50%);
"
style=
"margin-top: 20px;
transform: translateX(-50%)
"
>
立即创建
</el-button
>
立即创建
</el-button
>
>
</el-form-item>
</el-form-item>
...
@@ -187,28 +200,39 @@
...
@@ -187,28 +200,39 @@
<div
class=
"right"
>
<div
class=
"right"
>
<div
class=
"right_top"
>
<div
class=
"right_top"
>
<div
class=
"button_box"
>
<div
class=
"button_box"
>
<span>
今年
</span>
<span
<span
class=
"check"
>
本月
</span>
:class=
"
{ check: v.value == personageAttTopDate }"
<span>
今日
</span>
v-for="v in searchTimes"
</div>
:key="v.value"
<div
class=
"title"
>
@click="changeDate('personageAttTopDate', v.value)"
个人绩效总分排名TOP10
>
{{
v
.
label
}}
</span
>
</div>
</div>
<div
class=
"title"
>
个人绩效总分排名TOP10
</div>
<dv-scroll-ranking-board
<dv-scroll-ranking-board
:config=
"personConfig"
:config=
"personConfig"
style=
"width:
100%;height:
75%"
style=
"width:
100%; height:
75%"
/>
/>
</div>
</div>
<div
class=
"right_mid"
>
<div
class=
"right_mid"
>
<div
class=
"button_box"
>
<div
class=
"title"
>
<span>
今年
</span>
申诉分值分布情况
<span
class=
"check"
>
本月
</span>
<div
class=
"button_box"
>
<span>
今日
</span>
<span
:class=
"
{ check: v.value == appealDate }"
v-for="v in searchTimes"
:key="v.value"
@click="changeDate('appealDate', v.value)"
>
{{
v
.
label
}}
</span
>
</div>
</div>
</div>
<div
id=
"shensuPie"
style=
"width: 100%;height: 100%;"
></div>
<div
id=
"shensuPie"
style=
"width: 100%; height: 90%"
></div>
</div>
</div>
<div
class=
"right_down"
>
<div
class=
"right_down"
>
<div
id=
"recordPie"
style=
"width: 100%;height: 100%;"
></div>
<div
class=
"title"
>
反馈记录整体情况
</div>
<div
id=
"recordPie"
style=
"width: 100%; height: 90%"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -218,96 +242,184 @@
...
@@ -218,96 +242,184 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
type
:
"
1
"
,
// 时间搜索选项
searchTimes
:
[
{
label
:
"
今年
"
,
value
:
1
,
},
{
label
:
"
本月
"
,
value
:
2
,
},
{
label
:
"
今日
"
,
value
:
3
,
},
],
depAttendanceTopDate
:
2
,
// 部门绩效top搜索
abnormalDisDate
:
2
,
// 异常分值分布搜索
personageAttTopDate
:
2
,
// 个人绩效排名top搜索
appealDate
:
2
,
// 申诉分值分布搜索
form
:
{
form
:
{
date1
:
""
,
date1
:
""
,
type
:
[],
type
:
[],
resource
:
""
,
resource
:
""
,
},
},
config
:
{},
//部门绩效总分top10
config
:
{},
//部门绩效总分top10
personConfig
:
{},
//个人绩效总分top10
personConfig
:
{},
//个人绩效总分top10
cricleData
:
[
{
value
:
756
,
name
:
"
考勤绩效
"
},
{
value
:
690
,
name
:
"
评价绩效
"
},
{
value
:
559
,
name
:
"
办件绩效
"
},
{
value
:
1278
,
name
:
"
效能绩效
"
},
],
// 个人绩效总分排名
// 个人绩效总分排名
staffQuery
:{
staffQuery
:
{
page
:
1
,
page
:
1
,
size
:
10
,
size
:
10
,
},
},
// 部门
// 部门
depQuery
:{
depQuery
:
{
page
:
1
,
page
:
1
,
size
:
10
,
size
:
10
,
},
},
leidaEchart
:
null
,
// 异常分值分布情况echart实例
rulePie
:
null
,
// 绩效规则分布echart实例
shensuPie
:
null
,
// 申诉分值分布情况echart实例
recordPie
:
null
,
// 反馈记录整体情况echart实例
timer
:
null
,
};
};
},
},
mounted
()
{
mounted
()
{
this
.
drawLeiDa
();
this
.
staffStatList
();
this
.
drawRulePie
();
this
.
getException
();
this
.
d
rawCorePie
();
this
.
d
epStatList
();
this
.
drawRecordPie
();
this
.
getAttendanceRules
();
this
.
getFeedback
();
this
.
staffStatList
()
this
.
autoUpdata
();
this
.
depStatList
()
this
.
getAppealTotal
();
},
},
methods
:
{
methods
:
{
// 设配echarts
adapterEcharts
()
{
this
.
leidaEchart
&&
this
.
leidaEchart
.
resize
();
this
.
rulePie
&&
this
.
rulePie
.
resize
();
this
.
shensuPie
&&
this
.
shensuPie
.
resize
();
this
.
recordPie
&&
this
.
recordPie
.
resize
();
},
// 个人绩效总分排名
// 个人绩效总分排名
staffStatList
(){
staffStatList
()
{
this
.
$post
(
"
/staff/perform/stat/list
"
,
this
.
staffQuery
).
then
((
res
)
=>
{
this
.
$post
(
"
/staff/perform/stat/summary/top
"
,
{
const
{
code
,
data
}
=
res
summaryType
:
this
.
personageAttTopDate
,
if
(
code
==
1
){
}).
then
((
res
)
=>
{
const
row
=
data
.
data
||
[]
const
{
code
,
data
}
=
res
;
const
depArr
=
[]
if
(
code
==
1
)
{
row
.
forEach
(
element
=>
{
const
row
=
data
.
map
((
v
)
=>
{
depArr
.
push
({
return
{
name
:
element
.
staffName
,
name
:
v
.
staffName
,
value
:
element
.
totalScore
value
:
v
.
totalScore
,
})
};
});
this
.
personConfig
=
{
data
:
row
};
}
});
},
// 获取异常分值分布情况
getException
()
{
this
.
$post
(
"
/staff/perform/stat/summary/exception
"
,
{
summaryType
:
this
.
abnormalDisDate
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
let
names
=
data
.
map
((
v
)
=>
v
.
name
);
let
add
=
data
.
map
((
v
)
=>
v
.
add
);
let
sub
=
data
.
map
((
v
)
=>
v
.
sub
);
this
.
$nextTick
(()
=>
{
this
.
drawLeiDa
(
names
,
add
,
sub
);
});
});
this
.
personConfig
=
{
data
:
depArr
}
console
.
log
(
row
,
"
个人
"
)
}
}
});
});
},
},
// 部门绩效总分排名
// 部门绩效总分排名
depStatList
(){
depStatList
()
{
this
.
$post
(
"
/dept/perform/stat/list
"
,
this
.
depQuery
).
then
((
res
)
=>
{
this
.
$post
(
"
/dept/perform/stat/summary/top
"
,
{
const
{
code
,
data
}
=
res
summaryType
:
this
.
depAttendanceTopDate
,
if
(
code
==
1
){
}).
then
((
res
)
=>
{
const
row
=
data
.
data
||
[]
const
{
code
,
data
}
=
res
;
const
depArr
=
[]
if
(
code
==
1
)
{
row
.
forEach
(
element
=>
{
const
row
=
data
.
map
((
v
)
=>
{
depArr
.
push
({
return
{
name
:
element
.
deptName
,
name
:
v
.
deptName
,
value
:
element
.
totalScore
value
:
v
.
totalScore
,
})
};
});
this
.
config
=
{
data
:
row
};
}
});
},
// 获取绩效规则分布情况
getAttendanceRules
()
{
this
.
$post
(
"
/perform/rules/summary
"
).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
let
{
list
,
totalScore
}
=
data
;
let
arr
=
list
.
map
((
v
)
=>
{
return
{
name
:
v
.
typeName
,
value
:
v
.
score
,
};
});
});
this
.
config
=
{
data
:
depArr
}
this
.
$nextTick
(()
=>
{
// console.log(row,depArr,"部门")
this
.
drawRulePie
(
arr
,
totalScore
);
});
}
});
},
// 获取反馈记录整体情况数据
getFeedback
()
{
this
.
$post
(
"
/feedback/summary
"
).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
let
{
notStart
,
total
,
ended
,
progress
}
=
data
;
let
names
=
[
"
未开始
"
,
"
进行中
"
,
"
已完结
"
,
"
全部问卷
"
];
let
values
=
[
notStart
,
progress
,
ended
,
total
];
this
.
$nextTick
(()
=>
{
this
.
drawRecordPie
(
names
,
values
);
});
}
});
},
// 获取申诉分布情况统计数据
getAppealTotal
()
{
this
.
$post
(
"
/perform/attend/appeal/perform/summary
"
,
{
summaryType
:
this
.
appealDate
,
}).
then
((
res
)
=>
{
const
{
code
,
data
}
=
res
;
if
(
code
==
1
)
{
console
.
log
(
res
);
// this.$nextTick(() => {
// });
}
}
});
});
},
},
drawLeiDa
()
{
// 异常分值分布情况echarts
drawLeiDa
(
names
=
[],
add
=
[],
sub
=
[])
{
// 基于dom,初始化echarts实例
// 基于dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"
leida
"
));
let
chartDom
=
document
.
getElementById
(
"
leida
"
);
// 避免刷新数据时重新初始化图表
this
.
leidaEchart
=
this
.
$echarts
.
getInstanceByDom
(
chartDom
);
if
(
!
this
.
leidaEchart
)
{
this
.
leidaEchart
=
this
.
$echarts
.
init
(
chartDom
);
}
// 绘制图表
// 绘制图表
myChart
.
setOption
({
this
.
leidaEchart
.
setOption
({
title
:
{
text
:
"
异常分值分布情况
"
,
left
:
"
left
"
,
textStyle
:
{
fontSize
:
18
,
},
},
color
:
[
"
#56A3F1
"
,
"
#FF917C
"
],
color
:
[
"
#56A3F1
"
,
"
#FF917C
"
],
tooltip
:
{},
tooltip
:
{
confine
:
true
,
},
legend
:
{
legend
:
{
data
:
[
"
加分
"
,
"
扣分
"
]
,
data
:
names
,
right
:
0
,
right
:
0
,
bottom
:
"
50px
"
,
bottom
:
"
50px
"
,
orient
:
"
vertical
"
,
orient
:
"
vertical
"
,
...
@@ -336,15 +448,14 @@ export default {
...
@@ -336,15 +448,14 @@ export default {
},
},
},
},
{
{
indicator
:
[
indicator
:
names
.
map
((
v
)
=>
{
{
text
:
"
考勤绩效
"
,
max
:
150
},
return
{
{
text
:
"
办件绩效
"
,
max
:
150
},
name
:
v
,
{
text
:
"
评价绩效
"
,
max
:
150
},
max
:
150
,
{
text
:
"
效能绩效
"
,
max
:
120
},
};
{
text
:
"
其他绩效
"
,
max
:
108
},
}),
],
center
:
[
"
45%
"
,
"
50%
"
],
center
:
[
"
45%
"
,
"
60%
"
],
radius
:
"
70%
"
,
radius
:
80
,
axisName
:
{
axisName
:
{
color
:
"
#fff
"
,
color
:
"
#fff
"
,
backgroundColor
:
"
#666
"
,
backgroundColor
:
"
#666
"
,
...
@@ -359,20 +470,20 @@ export default {
...
@@ -359,20 +470,20 @@ export default {
radarIndex
:
1
,
radarIndex
:
1
,
data
:
[
data
:
[
{
{
value
:
[
120
,
118
,
130
,
100
,
99
,
70
]
,
value
:
add
,
name
:
"
加分
"
,
name
:
"
加分
"
,
symbol
:
"
rect
"
,
symbol
:
"
rect
"
,
symbolSize
:
12
,
symbolSize
:
12
,
areaStyle
:
{
color
:
"
#56A3F1
"
},
//雷达覆盖区域背景颜色
areaStyle
:
{
color
:
"
#56A3F1
"
},
//雷达覆盖区域背景颜色
label
:
{
label
:
{
show
:
true
,
show
:
true
,
formatter
:
function
(
params
)
{
formatter
:
function
(
params
)
{
return
params
.
value
;
return
params
.
value
;
},
},
},
},
},
},
{
{
value
:
[
100
,
93
,
50
,
90
,
70
,
60
]
,
value
:
sub
,
areaStyle
:
{
color
:
"
#FF917C
"
},
//雷达覆盖区域背景颜色
areaStyle
:
{
color
:
"
#FF917C
"
},
//雷达覆盖区域背景颜色
name
:
"
扣分
"
,
name
:
"
扣分
"
,
},
},
...
@@ -380,17 +491,18 @@ export default {
...
@@ -380,17 +491,18 @@ export default {
},
},
],
],
});
});
window
.
addEventListener
(
"
resize
"
,
this
.
adapterEcharts
);
},
},
drawRulePie
()
{
// 绩效规则分布echarts
drawRulePie
(
data
,
total
)
{
// 基于dom,初始化echarts实例
// 基于dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"
rulePie
"
));
let
chartDom
=
document
.
getElementById
(
"
rulePie
"
);
myChart
.
setOption
({
// 避免刷新数据时重新初始化图表
title
:
{
this
.
rulePie
=
this
.
$echarts
.
getInstanceByDom
(
chartDom
);
text
:
"
绩效规则分布情况
"
,
if
(
!
this
.
rulePie
)
{
textStyle
:
{
this
.
rulePie
=
this
.
$echarts
.
init
(
chartDom
);
fontSize
:
18
,
}
},
this
.
rulePie
.
setOption
({
},
tooltip
:
{
tooltip
:
{
trigger
:
"
item
"
,
trigger
:
"
item
"
,
},
},
...
@@ -427,19 +539,15 @@ export default {
...
@@ -427,19 +539,15 @@ export default {
},
},
},
},
formatter
:
(
name
)
=>
{
formatter
:
(
name
)
=>
{
// formatter格式化函数动态呈现数据
console
.
log
(
name
);
var
total
=
0
;
// 用于计算总数
var
target
;
// 遍历拿到数据
var
target
;
// 遍历拿到数据
for
(
var
i
=
0
;
i
<
this
.
cricleData
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
total
+=
this
.
cricleData
[
i
].
value
;
if
(
data
[
i
].
name
==
name
)
{
if
(
this
.
cricleData
[
i
].
name
==
name
)
{
target
=
data
[
i
].
value
;
target
=
this
.
cricleData
[
i
].
value
;
}
}
}
}
var
v
=
((
target
/
total
)
*
100
).
toFixed
(
2
);
var
v
=
((
target
/
total
)
*
100
).
toFixed
(
2
);
return
`{oneone|
${
name
}
} {twotwo|
${
target
}
分} {threethree|
${
v
}
%}`
;
return
`{oneone|
${
name
}
} {twotwo|
${
target
}
分} {threethree|
${
v
}
%}`
;
//
富文本第一列样式应用 富文本第二列样式应用 富文本第三列样式应用
// 富文本第一列样式应用 富文本第二列样式应用 富文本第三列样式应用
},
},
},
},
series
:
[
series
:
[
...
@@ -447,34 +555,33 @@ export default {
...
@@ -447,34 +555,33 @@ export default {
type
:
"
pie
"
,
type
:
"
pie
"
,
radius
:
[
"
40%
"
,
"
70%
"
],
radius
:
[
"
40%
"
,
"
70%
"
],
// avoidLabelOverlap: false,
// avoidLabelOverlap: false,
data
,
left
:
"
-50%
"
,
left
:
"
-50%
"
,
top
:
"
10%
"
,
top
:
"
10%
"
,
label
:
{
label
:
{
position
:
"
center
"
,
position
:
"
center
"
,
fontSize
:
16
,
fontSize
:
16
,
formatter
:
()
=>
{
formatter
:
()
=>
{
let
str
=
"
总
"
+
"
\n
"
+
`
${
756
+
690
+
559
+
1278
}
`
;
return
"
总
"
+
"
\n
"
+
total
;
return
str
;
},
},
},
},
labelLine
:
{
labelLine
:
{
show
:
false
,
show
:
false
,
},
},
data
:
this
.
cricleData
,
},
},
],
],
});
});
window
.
addEventListener
(
"
resize
"
,
this
.
adapterEcharts
);
},
},
// 申诉分值分布情况echarts
drawCorePie
()
{
drawCorePie
()
{
// 基于dom,初始化echarts实例
let
chartDom
=
document
.
getElementById
(
"
shensuPie
"
);
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"
shensuPie
"
));
// 避免刷新数据时重新初始化图表
myChart
.
setOption
({
this
.
shensuPie
=
this
.
$echarts
.
getInstanceByDom
(
chartDom
);
title
:
{
if
(
!
this
.
shensuPie
)
{
text
:
"
绩效规则分布情况
"
,
this
.
shensuPie
=
this
.
$echarts
.
init
(
chartDom
);
textStyle
:
{
}
fontSize
:
18
,
this
.
shensuPie
.
setOption
({
},
},
tooltip
:
{
tooltip
:
{
trigger
:
"
item
"
,
trigger
:
"
item
"
,
},
},
...
@@ -564,34 +671,28 @@ export default {
...
@@ -564,34 +671,28 @@ export default {
},
},
],
],
});
});
window
.
addEventListener
(
"
resize
"
,
this
.
adapterEcharts
);
},
},
// 反馈记录整体情况echarts
drawRecordPie
()
{
drawRecordPie
(
names
=
[],
values
=
[])
{
let
xData
=
[
"
未开始
"
,
"
进行中
"
,
"
已完结
"
,
"
全部问卷
"
];
let
yData
=
[
2
,
8
,
116
,
126
];
let
colorList
=
[
"
#97e7ff
"
,
"
#75f5ff
"
,
"
#00deff
"
,
"
#0093ff
"
,
"
#2a5fcf
"
];
let
colorList
=
[
"
#97e7ff
"
,
"
#75f5ff
"
,
"
#00deff
"
,
"
#0093ff
"
,
"
#2a5fcf
"
];
let
visualMapPiecesData
=
[];
let
visualMapPiecesData
=
[];
// visualMap: {
for
(
var
i
=
0
;
i
<
names
.
length
;
i
++
)
{
// pieces: [
// { value: 123, label: '123(自定义特殊颜色)', color: 'grey' }
// ]
// }
for
(
var
i
=
0
;
i
<
xData
.
length
;
i
++
)
{
visualMapPiecesData
.
push
({
visualMapPiecesData
.
push
({
value
:
yData
[
i
],
value
:
values
[
i
],
label
:
xData
[
i
],
label
:
names
[
i
],
color
:
colorList
[
i
],
color
:
colorList
[
i
],
});
});
}
}
// 基于dom,初始化echarts实例
// 基于dom,初始化echarts实例
let
myChart
=
this
.
$echarts
.
init
(
document
.
getElementById
(
"
recordPie
"
)
);
let
chartDom
=
document
.
getElementById
(
"
recordPie
"
);
myChart
.
setOption
({
// 避免刷新数据时重新初始化图表
title
:
{
this
.
recordPie
=
this
.
$echarts
.
getInstanceByDom
(
chartDom
);
text
:
"
绩效规则分布情况
"
,
if
(
!
this
.
recordPie
)
{
textStyle
:
{
this
.
recordPie
=
this
.
$echarts
.
init
(
chartDom
);
fontSize
:
18
,
}
},
},
this
.
recordPie
.
setOption
({
tooltip
:
{
tooltip
:
{
trigger
:
"
item
"
,
trigger
:
"
item
"
,
},
},
...
@@ -608,7 +709,7 @@ export default {
...
@@ -608,7 +709,7 @@ export default {
radiusAxis
:
{
radiusAxis
:
{
show
:
true
,
show
:
true
,
type
:
"
category
"
,
type
:
"
category
"
,
data
:
xData
,
data
:
names
,
},
},
visualMap
:
{
visualMap
:
{
...
@@ -626,12 +727,12 @@ export default {
...
@@ -626,12 +727,12 @@ export default {
series
:
[
series
:
[
{
{
type
:
"
bar
"
,
type
:
"
bar
"
,
data
:
yData
,
data
:
values
,
coordinateSystem
:
"
polar
"
,
coordinateSystem
:
"
polar
"
,
itemStyle
:
{
itemStyle
:
{
normal
:
{
normal
:
{
// 定制显示(按顺序)
// 定制显示(按顺序)
color
:
function
(
params
)
{
color
:
function
(
params
)
{
return
colorList
[
params
.
dataIndex
];
return
colorList
[
params
.
dataIndex
];
},
},
},
},
...
@@ -639,7 +740,56 @@ export default {
...
@@ -639,7 +740,56 @@ export default {
},
},
],
],
});
});
window
.
addEventListener
(
"
resize
"
,
this
.
adapterEcharts
);
},
// 改变日期搜索
changeDate
(
type
,
date
)
{
switch
(
type
)
{
case
"
depAttendanceTopDate
"
:
this
.
depAttendanceTopDate
=
date
;
this
.
depStatList
();
break
;
case
"
abnormalDisDate
"
:
this
.
abnormalDisDate
=
date
;
this
.
getException
();
break
;
case
"
personageAttTopDate
"
:
this
.
personageAttTopDate
=
date
;
this
.
staffStatList
();
break
;
case
"
appealDate
"
:
this
.
appealDate
=
date
;
break
;
}
},
// 获取年
getYear
()
{
return
new
Date
().
getFullYear
();
},
},
// 获取月
getMonth
()
{
return
new
Date
().
getMonth
()
+
1
;
},
// 获取日
getDay
()
{
return
new
Date
().
getDate
();
},
// 1分值自动刷新数据
autoUpdata
()
{
this
.
timer
=
setInterval
(()
=>
{
this
.
staffStatList
();
this
.
getException
();
this
.
depStatList
();
this
.
getAttendanceRules
();
this
.
getFeedback
();
},
1000
*
60
);
},
},
beforeDestroy
()
{
// 解绑事件
window
.
removeEventListener
(
"
resize
"
,
this
.
adapterEcharts
);
clearInterval
(
this
.
timer
);
},
},
};
};
</
script
>
</
script
>
...
...
attendance-performance-manager-ui/admin/yarn.lock
View file @
81b38a24
This source diff could not be displayed because it is too large. You can
view the blob
instead.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/PerformAttendAppealDao.java
View file @
81b38a24
...
@@ -4,6 +4,7 @@ import com.mortals.framework.dao.ICRUDDao;
...
@@ -4,6 +4,7 @@ import com.mortals.framework.dao.ICRUDDao;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealSummaryQuery
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -19,4 +20,11 @@ public interface PerformAttendAppealDao extends ICRUDDao<PerformAttendAppealEnt
...
@@ -19,4 +20,11 @@ public interface PerformAttendAppealDao extends ICRUDDao<PerformAttendAppealEnt
String
SQLID_GET_STATLIST
=
"getStatList"
;
String
SQLID_GET_STATLIST
=
"getStatList"
;
List
<
AppealInfo
>
getStatList
(
PerformAttendAppealEntity
query
,
PageInfo
pageInfo
);
List
<
AppealInfo
>
getStatList
(
PerformAttendAppealEntity
query
,
PageInfo
pageInfo
);
/**
* 申述分布情况统计
* @param query
* @return
*/
List
<
PerformAttendAppealEntity
>
getAppealSummaryList
(
AppealSummaryQuery
query
);
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/ibatis/PerformAttendAppealDaoImpl.java
View file @
81b38a24
...
@@ -4,6 +4,7 @@ package com.mortals.xhx.module.perform.dao.ibatis;
...
@@ -4,6 +4,7 @@ package com.mortals.xhx.module.perform.dao.ibatis;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealSummaryQuery
;
import
org.apache.ibatis.session.RowBounds
;
import
org.apache.ibatis.session.RowBounds
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
...
@@ -31,4 +32,9 @@ public class PerformAttendAppealDaoImpl extends BaseCRUDDaoMybatis<PerformAttend
...
@@ -31,4 +32,9 @@ public class PerformAttendAppealDaoImpl extends BaseCRUDDaoMybatis<PerformAttend
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
,
rowBounds
);
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
,
rowBounds
);
}
}
}
}
@Override
public
List
<
PerformAttendAppealEntity
>
getAppealSummaryList
(
AppealSummaryQuery
query
)
{
return
getSqlSession
().
selectList
(
getSqlId
(
"getAppealSummaryList"
),
query
);
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/vo/AppealSummaryQuery.java
0 → 100644
View file @
81b38a24
package
com.mortals.xhx.module.perform.model.vo
;
import
lombok.Data
;
/**
* 申述分布情况统计
*/
@Data
public
class
AppealSummaryQuery
{
/** 汇总方式 1按年,2按月,3按天*/
private
Integer
summaryType
;
/** 开始 核查时间 */
private
String
checkTimeStart
;
/** 结束 核查时间 */
private
String
checkTimeEnd
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/PerformAttendAppealService.java
View file @
81b38a24
...
@@ -6,6 +6,7 @@ import com.mortals.framework.service.ICRUDService;
...
@@ -6,6 +6,7 @@ import com.mortals.framework.service.ICRUDService;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealSummaryQuery
;
import
java.util.List
;
import
java.util.List
;
...
@@ -26,4 +27,10 @@ public interface PerformAttendAppealService extends ICRUDService<PerformAttendAp
...
@@ -26,4 +27,10 @@ public interface PerformAttendAppealService extends ICRUDService<PerformAttendAp
Rest
<
List
<
AppealInfo
>>
stat
(
PerformAttendAppealEntity
appeal
,
Context
context
);
Rest
<
List
<
AppealInfo
>>
stat
(
PerformAttendAppealEntity
appeal
,
Context
context
);
/**
* 申述分布情况统计
* @param query
* @return
*/
List
<
PerformAttendAppealEntity
>
getAppealSummaryList
(
AppealSummaryQuery
query
);
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendAppealServiceImpl.java
View file @
81b38a24
...
@@ -2,34 +2,34 @@ package com.mortals.xhx.module.perform.service.impl;
...
@@ -2,34 +2,34 @@ package com.mortals.xhx.module.perform.service.impl;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.common.utils.BeanUtil
;
import
com.mortals.xhx.module.check.model.*
;
import
com.mortals.xhx.module.check.model.*
;
import
com.mortals.xhx.module.check.service.*
;
import
com.mortals.xhx.module.check.service.*
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealQuery
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.service.PerformAttendAppealService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealFilesEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealFilesEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealFilesQuery
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealFilesQuery
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealQuery
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealSummaryQuery
;
import
com.mortals.xhx.module.perform.service.PerformAttendAppealFilesService
;
import
com.mortals.xhx.module.perform.service.PerformAttendAppealFilesService
;
import
com.mortals.xhx.module.perform.service.PerformAttendAppealService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Date
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
* PerformAttendAppealService
* PerformAttendAppealService
* 绩效记录申诉信息 service实现
* 绩效记录申诉信息 service实现
...
@@ -176,6 +176,25 @@ public class PerformAttendAppealServiceImpl extends AbstractCRUDServiceImpl<Perf
...
@@ -176,6 +176,25 @@ public class PerformAttendAppealServiceImpl extends AbstractCRUDServiceImpl<Perf
return
Rest
.
ok
(
statList
);
return
Rest
.
ok
(
statList
);
}
}
@Override
public
List
<
PerformAttendAppealEntity
>
getAppealSummaryList
(
AppealSummaryQuery
query
)
{
if
(
query
==
null
)
{
query
=
new
AppealSummaryQuery
();
query
.
setSummaryType
(
SummaryTopTypeEnum
.
月
.
getValue
());
}
if
(
query
.
getSummaryType
()
==
SummaryTopTypeEnum
.
年
.
getValue
())
{
query
.
setCheckTimeStart
(
DateUtils
.
getCurrDateTime
(
"yyyy"
)+
"-01-01"
);
}
if
(
query
.
getSummaryType
()
==
SummaryTopTypeEnum
.
月
.
getValue
())
{
query
.
setCheckTimeStart
(
DateUtils
.
getCurrDateTime
(
"yyyy-MM"
)+
"-01"
);
}
if
(
query
.
getSummaryType
()
==
SummaryTopTypeEnum
.
日
.
getValue
())
{
query
.
setCheckTimeStart
(
DateUtils
.
getCurrStrDate
());
}
query
.
setCheckTimeEnd
(
DateUtils
.
getCurrStrDate
());
return
dao
.
getAppealSummaryList
(
query
);
}
@Override
@Override
protected
void
saveAfter
(
PerformAttendAppealEntity
entity
,
Context
context
)
throws
AppException
{
protected
void
saveAfter
(
PerformAttendAppealEntity
entity
,
Context
context
)
throws
AppException
{
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/web/PerformAttendAppealController.java
View file @
81b38a24
package
com.mortals.xhx.module.perform.web
;
package
com.mortals.xhx.module.perform.web
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.OrderCol
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.Result
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.common.code.EnabledEnum
;
import
com.mortals.xhx.common.code.EnabledEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
com.mortals.xhx.module.perform.model.vo.AppealSummaryQuery
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -125,5 +129,44 @@ public class PerformAttendAppealController extends BaseCRUDJsonBodyMappingContro
...
@@ -125,5 +129,44 @@ public class PerformAttendAppealController extends BaseCRUDJsonBodyMappingContro
return
jsonObject
.
toJSONString
();
return
jsonObject
.
toJSONString
();
}
}
/**
* 申述分布情况统计
* @param query
* @return
*/
@PostMapping
({
"perform/summary"
})
@UnAuth
public
Rest
<
Object
>
getAppealSummaryList
(
@RequestBody
AppealSummaryQuery
query
)
{
Rest
<
Object
>
ret
=
new
Rest
();
Map
<
String
,
Object
>
model
=
new
HashMap
();
Context
context
=
this
.
getContext
();
String
busiDesc
=
"查询申述分布情况统计"
;
int
code
=
1
;
try
{
List
<
PerformAttendAppealEntity
>
result
=
this
.
getService
().
getAppealSummaryList
(
query
);
Map
<
String
,
String
>
dict
=
new
HashMap
<>();
//attend:考勤绩效,review:评价差评绩效,complain:评价投诉绩效,gowork:办件绩效,effect:效能绩效,other:其它绩效
dict
.
put
(
"attend"
,
"考勤绩效"
);
dict
.
put
(
"review"
,
"评价差评绩效"
);
dict
.
put
(
"complain"
,
"评价投诉绩效"
);
dict
.
put
(
"gowork"
,
"办件绩效"
);
dict
.
put
(
"effect"
,
"效能绩效"
);
dict
.
put
(
"other"
,
"其它绩效"
);
this
.
addDict
(
model
,
"performType"
,
dict
);
model
.
put
(
"data"
,
result
);
model
.
put
(
"message_info"
,
busiDesc
+
"成功"
);
if
(!
ObjectUtils
.
isEmpty
(
context
)
&&
!
ObjectUtils
.
isEmpty
(
context
.
getUser
()))
{
this
.
recordSysLog
(
this
.
request
,
busiDesc
+
" 【成功】"
);
}
}
catch
(
Exception
var9
)
{
code
=
-
1
;
this
.
doException
(
this
.
request
,
busiDesc
,
model
,
var9
);
}
ret
.
setCode
(
code
);
ret
.
setData
(
model
);
ret
.
setDict
(
model
.
remove
(
"dict"
));
ret
.
setMsg
(
model
.
get
(
"message_info"
)
==
null
?
""
:
model
.
remove
(
"message_info"
).
toString
());
return
ret
;
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/StaffPerformStatDao.java
View file @
81b38a24
...
@@ -33,4 +33,22 @@ public interface StaffPerformStatDao extends ICRUDDao<StaffPerformStatEntity,Lo
...
@@ -33,4 +33,22 @@ public interface StaffPerformStatDao extends ICRUDDao<StaffPerformStatEntity,Lo
* @return
* @return
*/
*/
List
<
StaffPerformStatEntity
>
getYearSummaryList
(
StaffSummaryTopQuery
query
);
List
<
StaffPerformStatEntity
>
getYearSummaryList
(
StaffSummaryTopQuery
query
);
/**
* 按天异常分值统计
* @param query
* @return
*/
List
<
StaffPerformStatEntity
>
getDayExceptionList
(
StaffSummaryTopQuery
query
);
/**
* 按月异常分值统计
* @param query
* @return
*/
List
<
StaffPerformStatEntity
>
getMonthExceptionList
(
StaffSummaryTopQuery
query
);
/**
* 按年异常分值统计
* @param query
* @return
*/
List
<
StaffPerformStatEntity
>
getYearExceptionList
(
StaffSummaryTopQuery
query
);
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/ibatis/StaffPerformStatDaoImpl.java
View file @
81b38a24
...
@@ -32,4 +32,19 @@ public class StaffPerformStatDaoImpl extends BaseCRUDDaoMybatis<StaffPerformStat
...
@@ -32,4 +32,19 @@ public class StaffPerformStatDaoImpl extends BaseCRUDDaoMybatis<StaffPerformStat
public
List
<
StaffPerformStatEntity
>
getYearSummaryList
(
StaffSummaryTopQuery
query
)
{
public
List
<
StaffPerformStatEntity
>
getYearSummaryList
(
StaffSummaryTopQuery
query
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getSqlId
(
"getYearSummaryList"
),
query
);
return
this
.
getSqlSession
().
selectList
(
this
.
getSqlId
(
"getYearSummaryList"
),
query
);
}
}
@Override
public
List
<
StaffPerformStatEntity
>
getDayExceptionList
(
StaffSummaryTopQuery
query
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getSqlId
(
"getDayExceptionList"
),
query
);
}
@Override
public
List
<
StaffPerformStatEntity
>
getMonthExceptionList
(
StaffSummaryTopQuery
query
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getSqlId
(
"getMonthExceptionList"
),
query
);
}
@Override
public
List
<
StaffPerformStatEntity
>
getYearExceptionList
(
StaffSummaryTopQuery
query
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getSqlId
(
"getYearExceptionList"
),
query
);
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/StaffPerformStatService.java
View file @
81b38a24
...
@@ -25,4 +25,11 @@ public interface StaffPerformStatService extends ICRUDService<StaffPerformStatEn
...
@@ -25,4 +25,11 @@ public interface StaffPerformStatService extends ICRUDService<StaffPerformStatEn
* @return
* @return
*/
*/
List
<
StaffPerformStatEntity
>
getSummaryTopList
(
StaffSummaryTopQuery
query
)
throws
AppException
;
List
<
StaffPerformStatEntity
>
getSummaryTopList
(
StaffSummaryTopQuery
query
)
throws
AppException
;
/**
* 获取异常分值统计
* @param query
* @return
*/
List
<
StaffPerformStatEntity
>
getExceptionList
(
StaffSummaryTopQuery
query
)
throws
AppException
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffPerformStatServiceImpl.java
View file @
81b38a24
...
@@ -62,4 +62,42 @@ public class StaffPerformStatServiceImpl extends AbstractCRUDServiceImpl<StaffPe
...
@@ -62,4 +62,42 @@ public class StaffPerformStatServiceImpl extends AbstractCRUDServiceImpl<StaffPe
return
result
;
return
result
;
}
}
@Override
public
List
<
StaffPerformStatEntity
>
getExceptionList
(
StaffSummaryTopQuery
query
)
throws
AppException
{
LocalDate
now
=
LocalDate
.
now
();
List
<
StaffPerformStatEntity
>
result
=
null
;
if
(
query
==
null
){
query
=
new
StaffSummaryTopQuery
();
query
.
setSummaryType
(
SummaryTopTypeEnum
.
月
.
getValue
());
}
if
(
query
.
getSummaryType
()
==
SummaryTopTypeEnum
.
年
.
getValue
()){
if
(
query
.
getYear
()==
null
){
query
.
setYear
(
now
.
getYear
());
}
result
=
dao
.
getYearExceptionList
(
query
);
}
if
(
query
.
getSummaryType
()
==
SummaryTopTypeEnum
.
月
.
getValue
()){
if
(
query
.
getYear
()==
null
){
query
.
setYear
(
now
.
getYear
());
}
if
(
query
.
getMonth
()==
null
){
query
.
setMonth
(
now
.
getMonthValue
());
}
result
=
dao
.
getMonthExceptionList
(
query
);
}
if
(
query
.
getSummaryType
()
==
SummaryTopTypeEnum
.
日
.
getValue
()){
if
(
query
.
getYear
()==
null
){
query
.
setYear
(
now
.
getYear
());
}
if
(
query
.
getMonth
()==
null
){
query
.
setMonth
(
now
.
getMonthValue
());
}
if
(
query
.
getDay
()==
null
){
query
.
setDay
(
now
.
getDayOfMonth
());
}
result
=
dao
.
getDayExceptionList
(
query
);
}
return
result
;
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffPerformStatController.java
View file @
81b38a24
package
com.mortals.xhx.module.staff.web
;
package
com.mortals.xhx.module.staff.web
;
import
com.alibaba.fastjson.JSONObject
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.Context
;
...
@@ -8,6 +9,7 @@ import com.mortals.xhx.base.system.param.service.ParamService;
...
@@ -8,6 +9,7 @@ import com.mortals.xhx.base.system.param.service.ParamService;
import
com.mortals.xhx.module.staff.model.StaffPerformStatEntity
;
import
com.mortals.xhx.module.staff.model.StaffPerformStatEntity
;
import
com.mortals.xhx.module.staff.model.vo.StaffSummaryTopQuery
;
import
com.mortals.xhx.module.staff.model.vo.StaffSummaryTopQuery
;
import
com.mortals.xhx.module.staff.service.StaffPerformStatService
;
import
com.mortals.xhx.module.staff.service.StaffPerformStatService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -44,7 +47,7 @@ public class StaffPerformStatController extends BaseCRUDJsonBodyMappingControlle
...
@@ -44,7 +47,7 @@ public class StaffPerformStatController extends BaseCRUDJsonBodyMappingControlle
}
}
/**
/**
*
部门
绩效排行榜
*
个人
绩效排行榜
* @param query
* @param query
* @return
* @return
*/
*/
...
@@ -74,4 +77,69 @@ public class StaffPerformStatController extends BaseCRUDJsonBodyMappingControlle
...
@@ -74,4 +77,69 @@ public class StaffPerformStatController extends BaseCRUDJsonBodyMappingControlle
return
ret
;
return
ret
;
}
}
/**
* 异常分值统计
* @param query
* @return
*/
@PostMapping
({
"summary/exception"
})
@UnAuth
public
Rest
<
Object
>
getExceptionList
(
@RequestBody
StaffSummaryTopQuery
query
)
{
Rest
<
Object
>
ret
=
new
Rest
();
Map
<
String
,
Object
>
model
=
new
HashMap
();
Context
context
=
this
.
getContext
();
String
busiDesc
=
"查询异常分值统计"
;
int
code
=
1
;
try
{
List
<
StaffPerformStatEntity
>
result
=
this
.
getService
().
getExceptionList
(
query
);
List
<
JSONObject
>
data
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
result
))
{
StaffPerformStatEntity
entity
=
result
.
get
(
0
);
JSONObject
jsonObject1
=
new
JSONObject
();
jsonObject1
.
put
(
"name"
,
"考勤绩效"
);
jsonObject1
.
put
(
"add"
,
entity
.
getAttendScoreAdd
());
jsonObject1
.
put
(
"sub"
,
entity
.
getAttendScoreSub
());
data
.
add
(
jsonObject1
);
JSONObject
jsonObject2
=
new
JSONObject
();
jsonObject2
.
put
(
"name"
,
"评价绩效"
);
jsonObject2
.
put
(
"add"
,
entity
.
getReviewScoreAdd
());
jsonObject2
.
put
(
"sub"
,
entity
.
getReviewScoreSub
());
data
.
add
(
jsonObject2
);
JSONObject
jsonObject3
=
new
JSONObject
();
jsonObject3
.
put
(
"name"
,
"投诉绩效"
);
jsonObject3
.
put
(
"add"
,
entity
.
getComplainScoreAdd
());
jsonObject3
.
put
(
"sub"
,
entity
.
getComplainScoreSub
());
data
.
add
(
jsonObject3
);
JSONObject
jsonObject4
=
new
JSONObject
();
jsonObject4
.
put
(
"name"
,
"办件绩效"
);
jsonObject4
.
put
(
"add"
,
entity
.
getGoworkScoreAdd
());
jsonObject4
.
put
(
"sub"
,
entity
.
getGoworkScoreSub
());
data
.
add
(
jsonObject4
);
JSONObject
jsonObject5
=
new
JSONObject
();
jsonObject5
.
put
(
"name"
,
"效能绩效"
);
jsonObject5
.
put
(
"add"
,
entity
.
getEffectScoreAdd
());
jsonObject5
.
put
(
"sub"
,
entity
.
getEffectScoreSub
());
data
.
add
(
jsonObject5
);
JSONObject
jsonObject6
=
new
JSONObject
();
jsonObject6
.
put
(
"name"
,
"其它绩效"
);
jsonObject6
.
put
(
"add"
,
entity
.
getOtherScoreAdd
());
jsonObject6
.
put
(
"sub"
,
entity
.
getOtherScoreSub
());
data
.
add
(
jsonObject6
);
}
model
.
put
(
"data"
,
data
);
model
.
put
(
"message_info"
,
busiDesc
+
"成功"
);
if
(!
ObjectUtils
.
isEmpty
(
context
)
&&
!
ObjectUtils
.
isEmpty
(
context
.
getUser
()))
{
this
.
recordSysLog
(
this
.
request
,
busiDesc
+
" 【成功】"
);
}
}
catch
(
Exception
var9
)
{
code
=
-
1
;
this
.
doException
(
this
.
request
,
busiDesc
,
model
,
var9
);
}
this
.
init
(
model
,
context
);
ret
.
setCode
(
code
);
ret
.
setData
(
model
.
get
(
"data"
));
ret
.
setMsg
(
model
.
get
(
"message_info"
)
==
null
?
""
:
model
.
remove
(
"message_info"
).
toString
());
return
ret
;
}
}
}
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/module/perform/PerformAttendAppealMapperExt.xml
0 → 100644
View file @
81b38a24
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper
namespace=
"com.mortals.xhx.module.perform.dao.ibatis.PerformAttendAppealDaoImpl"
>
<!-- 申述分布情况统计 -->
<select
id=
"getAppealSummaryList"
parameterType=
"com.mortals.xhx.module.perform.model.vo.AppealSummaryQuery"
resultType=
"com.mortals.xhx.module.perform.model.PerformAttendAppealEntity"
>
SELECT
performType,
SUM(score) AS score
FROM
mortals_xhx_perform_attend_appeal
WHERE
processStatus = 2
AND appealResult = 1
<if
test=
"checkTimeStart != null and checkTimeStart!=''"
>
AND checkTime
<![CDATA[ >= ]]>
STR_TO_DATE(left(concat(#{checkTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if
test=
"checkTimeEnd != null and checkTimeEnd!=''"
>
AND checkTime
<![CDATA[ <= ]]>
STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
GROUP BY
performType
</select>
</mapper>
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/module/staff/StaffPerformStatMapperExt.xml
View file @
81b38a24
...
@@ -76,4 +76,98 @@
...
@@ -76,4 +76,98 @@
`year`
`year`
) AS a ORDER BY totalScore DESC LIMIT 10
) AS a ORDER BY totalScore DESC LIMIT 10
</select>
</select>
<!-- 按天异常分值统计 -->
<select
id=
"getDayExceptionList"
parameterType=
"com.mortals.xhx.module.staff.model.vo.StaffSummaryTopQuery"
resultType=
"com.mortals.xhx.module.staff.model.StaffPerformStatEntity"
>
SELECT
`year`,
`month`,
`day`,
SUM(attendScoreAdd) AS attendScoreAdd,
SUM(attendScoreSub) AS attendScoreSub,
SUM(reviewScoreAdd) AS reviewScoreAdd,
SUM(reviewScoreSub) AS reviewScoreSub,
SUM(complainScoreAdd) AS complainScoreAdd,
SUM(complainScoreSub) AS complainScoreSub,
SUM(goworkScoreAdd) AS goworkScoreAdd,
SUM(goworkScoreSub) AS goworkScoreSub,
SUM(effectScoreAdd) AS effectScoreAdd,
SUM(effectScoreSub) AS effectScoreSub,
SUM(otherScoreAdd) AS otherScoreAdd,
SUM(otherScoreSub) AS otherScoreSub
FROM
mortals_xhx_staff_perform_stat
WHERE 1=1
<if
test=
"year != null"
>
AND `year` = #{year}
</if>
<if
test=
"month != null"
>
AND `month` = #{month}
</if>
<if
test=
"day != null"
>
AND `day` = #{day}
</if>
GROUP BY
`year`,
`month`,
`day`
</select>
<!-- 按月异常分值统计 -->
<select
id=
"getMonthExceptionList"
parameterType=
"com.mortals.xhx.module.staff.model.vo.StaffSummaryTopQuery"
resultType=
"com.mortals.xhx.module.staff.model.StaffPerformStatEntity"
>
SELECT
`year`,
`month`,
SUM(attendScoreAdd) AS attendScoreAdd,
SUM(attendScoreSub) AS attendScoreSub,
SUM(reviewScoreAdd) AS reviewScoreAdd,
SUM(reviewScoreSub) AS reviewScoreSub,
SUM(complainScoreAdd) AS complainScoreAdd,
SUM(complainScoreSub) AS complainScoreSub,
SUM(goworkScoreAdd) AS goworkScoreAdd,
SUM(goworkScoreSub) AS goworkScoreSub,
SUM(effectScoreAdd) AS effectScoreAdd,
SUM(effectScoreSub) AS effectScoreSub,
SUM(otherScoreAdd) AS otherScoreAdd,
SUM(otherScoreSub) AS otherScoreSub
FROM
mortals_xhx_staff_perform_stat
WHERE 1=1
<if
test=
"year != null"
>
AND `year` = #{year}
</if>
<if
test=
"month != null"
>
AND `month` = #{month}
</if>
GROUP BY
`year`,
`month`
</select>
<!-- 按年异常分值统计 -->
<select
id=
"getYearExceptionList"
parameterType=
"com.mortals.xhx.module.staff.model.vo.StaffSummaryTopQuery"
resultType=
"com.mortals.xhx.module.staff.model.StaffPerformStatEntity"
>
SELECT
`year`,
SUM(attendScoreAdd) AS attendScoreAdd,
SUM(attendScoreSub) AS attendScoreSub,
SUM(reviewScoreAdd) AS reviewScoreAdd,
SUM(reviewScoreSub) AS reviewScoreSub,
SUM(complainScoreAdd) AS complainScoreAdd,
SUM(complainScoreSub) AS complainScoreSub,
SUM(goworkScoreAdd) AS goworkScoreAdd,
SUM(goworkScoreSub) AS goworkScoreSub,
SUM(effectScoreAdd) AS effectScoreAdd,
SUM(effectScoreSub) AS effectScoreSub,
SUM(otherScoreAdd) AS otherScoreAdd,
SUM(otherScoreSub) AS otherScoreSub
FROM
mortals_xhx_staff_perform_stat
WHERE 1=1
<if
test=
"year != null"
>
AND `year` = #{year}
</if>
GROUP BY
`year`
</select>
</mapper>
</mapper>
\ No newline at end of file
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