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
61669359
Commit
61669359
authored
Jul 13, 2023
by
廖旭伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
165c662d
40f95244
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
645 additions
and
142 deletions
+645
-142
attendance-performance-manager-ui/admin/src/assets/images/fileImg.png
...erformance-manager-ui/admin/src/assets/images/fileImg.png
+0
-0
attendance-performance-manager-ui/admin/src/components/Header.vue
...ce-performance-manager-ui/admin/src/components/Header.vue
+2
-2
attendance-performance-manager-ui/admin/src/components/tools/TableButtons.vue
...ce-manager-ui/admin/src/components/tools/TableButtons.vue
+14
-0
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
...-manager-ui/admin/src/views/feedback/addQuestion/list.vue
+3
-3
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/drawershow.vue
...r-ui/admin/src/views/perform/attend/appeal/drawershow.vue
+156
-13
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/list.vue
...manager-ui/admin/src/views/perform/attend/appeal/list.vue
+43
-69
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
...ce-manager-ui/admin/src/views/staff/perform/stat/list.vue
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/FeedbackApiController.java
...java/com/mortals/xhx/busiz/web/FeedbackApiController.java
+0
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/AppealStatTypeEnum.java
.../java/com/mortals/xhx/common/code/AppealStatTypeEnum.java
+76
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/SubMethodEnum.java
.../main/java/com/mortals/xhx/common/code/SubMethodEnum.java
+2
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/check/model/CheckAttendRecordEntity.java
...rtals/xhx/module/check/model/CheckAttendRecordEntity.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/PerformAttendAppealDao.java
...ortals/xhx/module/perform/dao/PerformAttendAppealDao.java
+5
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/ibatis/PerformAttendAppealDaoImpl.java
...module/perform/dao/ibatis/PerformAttendAppealDaoImpl.java
+14
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/vo/AppealInfo.java
...a/com/mortals/xhx/module/perform/model/vo/AppealInfo.java
+16
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/vo/PerformAttendAppealVo.java
...ls/xhx/module/perform/model/vo/PerformAttendAppealVo.java
+11
-5
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/PerformAttendAppealService.java
...hx/module/perform/service/PerformAttendAppealService.java
+21
-8
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendAppealServiceImpl.java
.../perform/service/impl/PerformAttendAppealServiceImpl.java
+163
-13
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformRulesServiceImpl.java
.../module/perform/service/impl/PerformRulesServiceImpl.java
+6
-7
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/web/PerformAttendAppealController.java
...xhx/module/perform/web/PerformAttendAppealController.java
+77
-17
attendance-performance-manager/src/main/resources/sqlmap/module/perform/AppealMapperExt.xml
.../main/resources/sqlmap/module/perform/AppealMapperExt.xml
+34
-0
No files found.
attendance-performance-manager-ui/admin/src/assets/images/fileImg.png
0 → 100644
View file @
61669359
126 KB
attendance-performance-manager-ui/admin/src/components/Header.vue
View file @
61669359
...
...
@@ -35,13 +35,13 @@
</ul>
</div>
<div
class=
"controllBar"
>
<
!--
<
div
class=
"controllBar"
>
<el-badge
:value=
"12"
class=
"item"
>
<i
class=
"el-icon-bell"
style=
"font-size: 15px;margin-right: 10px"
>
消息
</i
>
</el-badge>
</div>
</div>
-->
<div
class=
"controllBar"
@
click=
"returnHome"
>
<i
class=
"el-icon-s-home"
style=
"font-size: 15px;margin-right: 10px"
>
首页
</i
...
...
attendance-performance-manager-ui/admin/src/components/tools/TableButtons.vue
View file @
61669359
...
...
@@ -39,6 +39,16 @@
>
核查
</el-button
>
<span>
</span>
<el-button
v-if=
"chuli"
type=
"text"
icon=
"el-icon-edit"
size=
"mini"
@
click=
"$emit('edit', row)"
title=
"处理"
>
处理
</el-button
>
<span>
</span>
<Confirm
@
confirm=
"$emit('del', row.id)"
message=
"确定要删除该条记录吗?"
>
<el-button
v-if=
"!noDel"
...
...
@@ -72,6 +82,10 @@ export default {
type
:
Boolean
,
default
:
false
,
},
chuli
:
{
type
:
Boolean
,
default
:
false
,
},
switchBtn
:
{
type
:
Boolean
,
default
:
false
,
...
...
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
View file @
61669359
...
...
@@ -260,11 +260,11 @@ export default {
i
.
remark
=
i
.
field
i
.
questionType
=
formType
(
i
.
type
)
i
.
require
=
formatNum
(
i
.
$required
)
i
.
content
=
i
.
info
||
''
i
.
content
=
i
.
title
if
(
formType
(
i
.
type
)
==
1
||
formType
(
i
.
type
)
==
2
)
{
i
.
options
.
forEach
(
j
=>
{
j
.
content
=
j
.
value
j
.
remark
=
j
.
label
j
.
content
=
j
.
label
j
.
remark
=
j
.
value
})
}
if
(
formType
(
i
.
type
)
==
1
||
formType
(
i
.
type
)
==
2
)
{
...
...
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/drawershow.vue
View file @
61669359
...
...
@@ -50,7 +50,9 @@
}}
</el-col
>
<el-col
:span=
"9"
>
异常结果:
{{
form
.
errorTime
?
form
.
errorTime
:
"
--
"
}}
</el-col
>
异常结果:
{{
form
.
errorResult
?
form
.
errorResult
:
"
--
"
}}
</el-col
>
<el-col
:span=
"5"
>
扣分方式:
{{
form
.
subMethod
?
form
.
subMethod
:
"
--
"
}}
</el-col
...
...
@@ -81,7 +83,9 @@
>
绩效规则:
{{
form
.
ruleName
?
form
.
ruleName
:
"
--
"
}}
</el-col
>
<el-col
:span=
"8"
>
加分/扣除分值:
{{
form
.
score
?
form
.
score
:
"
--
"
}}
</el-col
>
加分/扣除分值:
<span
style=
"color:#ff0000"
>
{{
form
.
score
?
form
.
score
:
"
--
"
}}
</span></el-col
>
</el-row>
<el-row>
...
...
@@ -104,20 +108,78 @@
<div
class=
"content"
>
<el-row>
<el-col
:span=
"24"
>
申诉说明:
{{
form
.
appealDesc
?
form
.
appealDesc
:
"
--
"
}}
</el-col
>
申诉说明:
{{
form
.
appealDesc
?
form
.
appealDesc
:
"
--
"
}}
</el-col
>
<el-col
:span=
"24"
>
申诉时间:
{{
form
.
appealTime
?
form
.
appealTime
:
"
--
"
}}
</el-col
>
<el-col
:span=
"24"
>
申诉附件:
{{
form
.
performAttendAppealFilesList
?
form
.
performAttendAppealFilesList
:
"
--
"
}}
</el-col
>
申诉附件:
<span
v-if=
"!form.performAttendAppealFilesList"
>
--
</span>
<div
class=
"img_content"
v-else
>
<div
class=
"imgBox"
v-for=
"val in form.performAttendAppealFilesList"
:key=
"val.id"
@
click=
"hanldeDownloadFile(val)"
>
<img
src=
"../../../../assets/images/fileImg.png"
alt=
""
/>
{{
val
.
fileName
}}
</div>
</div>
</el-col>
</el-row>
</div>
</div>
<div
class=
"box"
v-if=
"form.view == '查看' || form.processStatus == 2"
>
<div
class=
"title"
>
申诉结果
</div>
<div
class=
"content"
>
<el-row>
<el-col
:span=
"8"
>
申诉结果:
{{
form
.
appealResult
?
form
.
appealResult
:
"
--
"
}}
</el-col
>
<el-col
:span=
"8"
>
处理人员:
{{
form
.
updateUserId
?
form
.
updateUserId
:
"
--
"
}}
</el-col
>
<el-col
:span=
"8"
>
处理时间:
{{
form
.
appealTime
?
form
.
appealTime
:
"
--
"
}}
</el-col
>
</el-row>
<el-row>
<el-col
:span=
"24"
>
说明:
{{
form
.
remark
?
form
.
remark
:
"
--
"
}}
</el-col
>
</el-row>
</div>
</div>
<div
class=
"box"
></div>
<div
class=
"box"
v-else
>
<div
class=
"title"
>
申诉结果
</div>
<div
class=
"content"
>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"申诉结果:"
>
<el-radio-group
v-model=
"form.appealResult"
>
<el-radio
:label=
"1"
>
通过
</el-radio>
<el-radio
:label=
"2"
>
不通过
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"说明:"
>
<el-input
type=
"textarea"
v-model=
"form.remark"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<form-buttons
@
submit=
"submitForm"
v-if=
"pageInfo.type != 'view'"
...
...
@@ -393,6 +455,9 @@
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
import
{
timestampToTime
}
from
"
@/assets/utils/dateFormat.js
"
;
import
{
downloadFile
}
from
"
@/assets/utils/index
"
;
export
default
{
name
:
"
PerformAttendAppealDetail
"
,
mixins
:
[
form
],
...
...
@@ -433,6 +498,26 @@ export default {
},
methods
:
{
// 下载附件
hanldeDownloadFile
(
val
)
{
console
.
log
(
val
);
downloadFile
(
val
.
filePath
,
val
.
fileName
);
},
picMatter
(
val
)
{
if
(
val
||
val
!==
"
--
"
)
{
return
(
<
el
-
image
src
=
{
val
.
indexOf
(
"
http
"
)
==
-
1
?
this
.
baseUrl
+
val
:
val
}
preview
-
src
-
list
=
{
val
.
indexOf
(
"
http
"
)
==
-
1
?
this
.
baseUrl
+
val
:
val
}
style
=
"
width: 100px
"
><
/el-image
>
);
}
else
{
return
val
;
}
},
/** 绩效记录申诉附件信息序号 */
rowPerformAttendAppealFilesIndex
({
row
,
rowIndex
})
{
row
.
index
=
rowIndex
+
1
;
...
...
@@ -472,9 +557,8 @@ export default {
},
// 渲染前置处理
beforeRender
(
data
)
{
if
(
data
.
entity
.
performAttendAppealFilesList
)
{
this
.
performAttendAppealFilesList
=
data
.
entity
.
performAttendAppealFilesList
;
if
(
data
.
performAttendAppealFilesList
)
{
this
.
performAttendAppealFilesList
=
data
.
performAttendAppealFilesList
;
}
return
data
;
},
...
...
@@ -482,10 +566,47 @@ export default {
edit
(
row
)
{
this
.
reset
();
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/attend/appeal/edit
"
;
this
.
getData
();
// this.urls.currUrl = "/perform/attend/appeal/info";
// this.getData();
this
.
$get
(
"
/perform/attend/appeal/info
"
,
{
id
:
row
.
id
}).
then
((
res
)
=>
{
if
(
res
.
code
==
1
)
{
this
.
form
=
res
.
data
;
}
else
{
this
.
reset
();
}
for
(
let
key
in
this
.
form
)
{
key
==
"
actualAttendTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
attendanceDate
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
createTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
errorTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
updateTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
checkTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
reviewTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
appealTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
complainTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
happenTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
alarmTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
key
==
"
alarmTime
"
?
(
this
.
form
[
key
]
=
timestampToTime
(
this
.
form
[
key
],
6
))
:
""
;
}
this
.
form
.
appealResult
=
""
;
this
.
form
.
remark
=
""
;
this
.
open
=
true
;
});
this
.
pageInfo
.
type
=
"
edit
"
;
this
.
title
=
"
修改
绩效记录申诉信息
"
;
this
.
title
=
"
处理
绩效记录申诉信息
"
;
},
/** 新增 */
add
(
row
)
{
...
...
@@ -501,6 +622,7 @@ export default {
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
perform/attend/appeal/view
"
;
this
.
getData
();
this
.
form
.
view
=
"
查看
"
;
this
.
pageInfo
.
type
=
"
view
"
;
this
.
title
=
"
绩效记录申诉信息详细
"
;
},
...
...
@@ -603,6 +725,27 @@ export default {
/deep/.el-row {
margin-bottom: 20px;
}
.img_content {
width: 100%;
height: auto;
display: flex;
flex-wrap: wrap;
padding: 10px 0 0 10px;
}
.imgBox {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 60px;
height: 80px;
cursor: pointer;
img {
width: 50px;
height: 50px;
margin-top: 10px;
}
}
}
}
}
...
...
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/list.vue
View file @
61669359
...
...
@@ -13,8 +13,17 @@
<div
class=
"content"
>
<div
class=
"search_box"
>
<div
class=
"search"
>
<el-select
v-model=
"dateValue"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
<el-option
v-for=
"item in optionsMonths"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-select
v-model=
"dateValue"
placeholder=
"请选择"
style=
"margin: 0 10px;"
>
<el-option
v-for=
"item in optionsMonths"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-button
type=
"primary"
>
搜索
</el-button>
...
...
@@ -23,17 +32,29 @@
<div
class=
"data_box"
>
<div
class=
"top"
>
<div
class=
"box"
>
<bar-charts
:title=
"'申诉次数部门排名TOP20'"
:id=
"'dept_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }" />
<bar-charts
:title=
"'申诉次数部门排名TOP20'"
:id=
"'dept_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }"
/>
</div>
<div
class=
"box"
>
<bar-charts
:title=
"'申诉次数个人排名TOP20'"
:id=
"'person_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }" />
<bar-charts
:title=
"'申诉次数个人排名TOP20'"
:id=
"'person_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '800px', height: '360px' }"
/>
</div>
</div>
<div
class=
"down"
>
<bar-charts
:title=
"'申诉次数规则排名TOP20'"
:id=
"'rule_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '1800px', height: '320px' }" />
<bar-charts
:title=
"'申诉次数规则排名TOP20'"
:id=
"'rule_20'"
:legendName=
"'申诉次数'"
:styleObj=
"
{ width: '1800px', height: '320px' }"
/>
</div>
</div>
</div>
...
...
@@ -197,7 +218,7 @@ export default {
{
label
:
"
操作
"
,
formatter
:
(
row
)
=>
{
return
(
return
row
.
processStatus
==
2
?
(
<
table
-
buttons
noAdd
noDel
...
...
@@ -207,74 +228,27 @@ export default {
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
)
:
(
<
table
-
buttons
noAdd
noDel
noView
noEdit
chuli
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
},
},
],
},
activeName
:
"
1
"
,
optionsMonths
:
[
{
value
:
"
2023-01-00 00:00:00
"
,
label
:
"
1月
"
,
},
{
value
:
"
2023-02-00 00:00:00
"
,
label
:
"
2月
"
,
},
{
value
:
"
2023-03-00 00:00:00
"
,
label
:
"
3月
"
,
},
{
value
:
"
2023-04-00 00:00:00
"
,
label
:
"
4月
"
,
},
{
value
:
"
2023-05-00 00:00:00
"
,
label
:
"
5月
"
,
},
{
value
:
"
2023-06-00 00:00:00
"
,
label
:
"
6月
"
,
},
{
value
:
"
2023-07-00 00:00:00
"
,
label
:
"
7月
"
,
},
{
value
:
"
2023-08-00 00:00:00
"
,
label
:
"
8月
"
,
},
{
value
:
"
2023-09-00 00:00:00
"
,
label
:
"
9月
"
,
},
{
value
:
"
2023-10-00 00:00:00
"
,
label
:
"
10月
"
,
},
{
value
:
"
2023-11-00 00:00:00
"
,
label
:
"
11月
"
,
},
{
value
:
"
2023-12-00 00:00:00
"
,
label
:
"
12月
"
,
},
],
dateValue
:
'
2023-01-00 00:00:00
'
,
dateValue
:
"
2023-01-00 00:00:00
"
,
};
},
mounted
()
{
// this.$post('/perform/attend/appeal/stat', { appealTimeStart: this.dateValue }).then(res => {
// console.log(res)
// })
},
methods
:
{
}
};
</
script
>
<
style
lang=
"less"
scoped
>
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
View file @
61669359
...
...
@@ -657,7 +657,7 @@ export default {
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
margin:
0 20px 20px 0
;
margin:
10px 20px 20px 10px
;
padding: 20px;
.goal_title {
width: 100%;
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/web/FeedbackApiController.java
View file @
61669359
...
...
@@ -182,7 +182,6 @@ public class FeedbackApiController extends AbstractBaseController<FeedbackReq> {
model
.
put
(
PAGEINFO_KEY
,
pageInfo
);
}
public
static
void
main
(
String
[]
args
)
{
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/AppealStatTypeEnum.java
0 → 100644
View file @
61669359
package
com.mortals.xhx.common.code
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
/**
* @author: finegirl
* @date: 2021/7/16 11:50
* @description: //TODO 请完善注释信息
**/
public
enum
AppealStatTypeEnum
{
申诉次数部门排名
(
1
,
"deptName"
),
申诉次数个人排名
(
2
,
"staffName"
),
申诉次数规则排名
(
3
,
"ruleName"
);
private
int
value
;
private
String
desc
;
private
AppealStatTypeEnum
(
int
value
,
String
desc
)
{
this
.
value
=
value
;
this
.
desc
=
desc
;
}
public
int
getValue
()
{
return
this
.
value
;
}
public
String
getDesc
()
{
return
this
.
desc
;
}
public
static
AppealStatTypeEnum
getByValue
(
int
value
)
{
AppealStatTypeEnum
[]
var1
=
values
();
int
var2
=
var1
.
length
;
for
(
int
var3
=
0
;
var3
<
var2
;
++
var3
)
{
AppealStatTypeEnum
examStatus
=
var1
[
var3
];
if
(
examStatus
.
getValue
()
==
value
)
{
return
examStatus
;
}
}
return
null
;
}
public
static
Map
<
String
,
String
>
getEnumMap
(
int
...
eItem
)
{
Map
<
String
,
String
>
resultMap
=
new
LinkedHashMap
();
AppealStatTypeEnum
[]
var2
=
values
();
int
var3
=
var2
.
length
;
for
(
int
var4
=
0
;
var4
<
var3
;
++
var4
)
{
AppealStatTypeEnum
item
=
var2
[
var4
];
try
{
boolean
hasE
=
false
;
int
[]
var7
=
eItem
;
int
var8
=
eItem
.
length
;
for
(
int
var9
=
0
;
var9
<
var8
;
++
var9
)
{
int
e
=
var7
[
var9
];
if
(
item
.
getValue
()
==
e
)
{
hasE
=
true
;
break
;
}
}
if
(!
hasE
)
{
resultMap
.
put
(
item
.
getValue
()
+
""
,
item
.
getDesc
());
}
}
catch
(
Exception
var11
)
{
}
}
return
resultMap
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/SubMethodEnum.java
View file @
61669359
...
...
@@ -11,7 +11,8 @@ import java.util.Map;
public
enum
SubMethodEnum
{
系统自动
(
1
,
"系统自动"
),
人工添加
(
2
,
"人工添加"
),
大厅巡查
(
3
,
"大厅巡查"
);
大厅巡查
(
3
,
"大厅巡查"
),
申诉冲销
(
4
,
"申诉冲销"
);
private
Integer
value
;
private
String
desc
;
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/check/model/CheckAttendRecordEntity.java
View file @
61669359
...
...
@@ -110,7 +110,7 @@ public class CheckAttendRecordEntity extends CheckAttendRecordVo {
*/
private
Integer
checkStatus
;
/**
* 扣分方式(1.系统自动,2.人工添加,3.大厅巡查)
* 扣分方式(1.系统自动,2.人工添加,3.大厅巡查
,4.申诉冲销
)
*/
private
Integer
subMethod
;
/**
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/PerformAttendAppealDao.java
View file @
61669359
package
com.mortals.xhx.module.perform.dao
;
import
com.mortals.framework.dao.ICRUDDao
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
java.util.List
;
/**
* 绩效记录申诉信息Dao
...
...
@@ -13,5 +16,7 @@ import java.util.List;
public
interface
PerformAttendAppealDao
extends
ICRUDDao
<
PerformAttendAppealEntity
,
Long
>{
String
SQLID_GET_STATLIST
=
"getStatList"
;
List
<
AppealInfo
>
getStatList
(
PerformAttendAppealEntity
query
,
PageInfo
pageInfo
);
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/dao/ibatis/PerformAttendAppealDaoImpl.java
View file @
61669359
package
com.mortals.xhx.module.perform.dao.ibatis
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.ParamDto
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
org.apache.ibatis.session.RowBounds
;
import
org.springframework.stereotype.Repository
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
...
...
@@ -17,5 +21,14 @@ import java.util.List;
public
class
PerformAttendAppealDaoImpl
extends
BaseCRUDDaoMybatis
<
PerformAttendAppealEntity
,
Long
>
implements
PerformAttendAppealDao
{
@Override
public
List
<
AppealInfo
>
getStatList
(
PerformAttendAppealEntity
query
,
PageInfo
pageInfo
)
{
ParamDto
queryParam
=
super
.
getQueryParam
(
query
);
if
(
pageInfo
.
getPrePageResult
()
==
-
1
)
{
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
);
}
else
{
RowBounds
rowBounds
=
new
RowBounds
(
pageInfo
.
getBeginIndex
(),
pageInfo
.
getPrePageResult
());
return
getSqlSession
().
selectList
(
SQLID_GET_STATLIST
,
queryParam
,
rowBounds
);
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/vo/AppealInfo.java
0 → 100644
View file @
61669359
package
com.mortals.xhx.module.perform.model.vo
;
import
lombok.Data
;
@Data
public
class
AppealInfo
{
private
String
staffName
;
private
String
deptName
;
private
String
ruleName
;
private
Integer
number
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/vo/PerformAttendAppealVo.java
View file @
61669359
package
com.mortals.xhx.module.perform.model.vo
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
java.util.ArrayList
;
import
java.util.List
;
import
lombok.Data
;
import
com.mortals.framework.annotation.Excel
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 绩效记录申诉信息视图对象
...
...
@@ -16,4 +13,13 @@ import java.util.Date;
@Data
public
class
PerformAttendAppealVo
extends
BaseEntityLong
{
/**
* 时间
*/
private
String
appealTimeStart
;
/**
* 统计类型(1.申诉次数部门排名,2.申诉次数个人排名,3.申诉次数规则排名)
*/
private
Integer
statType
;
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/PerformAttendAppealService.java
View file @
61669359
package
com.mortals.xhx.module.perform.service
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.dao.PerformAttendAppealDao
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
java.util.List
;
/**
* PerformAttendAppealService
*
* 绩效记录申诉信息 service接口
*
* @author zxfei
* @date 2023-07-12
*/
public
interface
PerformAttendAppealService
extends
ICRUDService
<
PerformAttendAppealEntity
,
Long
>
{
* PerformAttendAppealService
* <p>
* 绩效记录申诉信息 service接口
*
* @author zxfei
* @date 2023-07-12
*/
public
interface
PerformAttendAppealService
extends
ICRUDService
<
PerformAttendAppealEntity
,
Long
>
{
PerformAttendAppealDao
getDao
();
Rest
<
Void
>
audit
(
PerformAttendAppealEntity
appeal
,
Context
context
);
Rest
<
List
<
AppealInfo
>>
stat
(
PerformAttendAppealEntity
appeal
,
Context
context
);
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendAppealServiceImpl.java
View file @
61669359
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformRulesServiceImpl.java
View file @
61669359
...
...
@@ -43,7 +43,6 @@ public class PerformRulesServiceImpl extends AbstractCRUDCacheServiceImpl<Perfor
@Override
protected
void
saveBefore
(
PerformRulesEntity
entity
,
Context
context
)
throws
AppException
{
if
(
ObjectUtils
.
isEmpty
(
entity
.
getRuleCode
()))
{
String
ruleCode
=
""
;
/*
if (PerformRulesTypeEnum.考勤绩效.getValue() == entity.getType()) {
...
...
@@ -52,22 +51,22 @@ public class PerformRulesServiceImpl extends AbstractCRUDCacheServiceImpl<Perfor
*/
switch
(
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()))
{
case
考勤绩效:
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
"_"
+
idgeneratorService
.
getLongId
(
ATTEND_KEY
);
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
idgeneratorService
.
getLongId
(
ATTEND_KEY
);
break
;
case
评价差评绩效:
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
"_"
+
idgeneratorService
.
getLongId
(
REVIEW_KEY
);
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
idgeneratorService
.
getLongId
(
REVIEW_KEY
);
break
;
case
评价投诉绩效:
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
"_"
+
idgeneratorService
.
getLongId
(
COMPLAIN_KEY
);
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
idgeneratorService
.
getLongId
(
COMPLAIN_KEY
);
break
;
case
办件绩效:
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
"_"
+
idgeneratorService
.
getLongId
(
GOWORK_KEY
);
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
idgeneratorService
.
getLongId
(
GOWORK_KEY
);
break
;
case
效能绩效:
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
"_"
+
idgeneratorService
.
getLongId
(
EFFECT_KEY
);
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
idgeneratorService
.
getLongId
(
EFFECT_KEY
);
break
;
case
其它绩效:
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
"_"
+
idgeneratorService
.
getLongId
(
OTHER_KEY
);
ruleCode
=
PerformRulesTypeEnum
.
getByValue
(
entity
.
getType
()).
getDesc
().
toUpperCase
()
+
idgeneratorService
.
getLongId
(
OTHER_KEY
);
break
;
default
:
throw
new
AppException
(
"绩效类型不支持!"
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/web/PerformAttendAppealController.java
View file @
61669359
package
com.mortals.xhx.module.perform.web
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.common.code.EnabledEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.perform.model.vo.AppealInfo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
com.mortals.framework.model.Context
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.module.perform.model.PerformAttendAppealEntity
;
import
com.mortals.xhx.module.perform.service.PerformAttendAppealService
;
import
org.apache.commons.lang3.ArrayUtils
;
import
com.mortals.framework.util.StringUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Arrays
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
static
com
.
mortals
.
framework
.
ap
.
SysConstains
.*;
/**
*
* 绩效记录申诉信息
*
* @author zxfei
* @date 2023-07-12
*/
* 绩效记录申诉信息
*
* @author zxfei
* @date 2023-07-12
*/
@RestController
@RequestMapping
(
"perform/attend/appeal"
)
public
class
PerformAttendAppealController
extends
BaseCRUDJsonBodyMappingController
<
PerformAttendAppealService
,
PerformAttendAppealEntity
,
Long
>
{
public
class
PerformAttendAppealController
extends
BaseCRUDJsonBodyMappingController
<
PerformAttendAppealService
,
PerformAttendAppealEntity
,
Long
>
{
@Autowired
private
ParamService
paramService
;
public
PerformAttendAppealController
(){
super
.
setModuleDesc
(
"绩效记录申诉信息"
);
public
PerformAttendAppealController
()
{
super
.
setModuleDesc
(
"绩效记录申诉信息"
);
}
@Override
protected
void
init
(
Map
<
String
,
Object
>
model
,
Context
context
)
{
this
.
addDict
(
model
,
"subMethod"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"subMethod"
));
this
.
addDict
(
model
,
"subAddType"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"subAddType"
));
this
.
addDict
(
model
,
"processStatus"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"processStatus"
));
this
.
addDict
(
model
,
"appealResult"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"appealResult"
));
this
.
addDict
(
model
,
"reviewResult"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"reviewResult"
));
this
.
addDict
(
model
,
"reviewSource"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"reviewSource"
));
this
.
addDict
(
model
,
"irregularType"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"irregularType"
));
this
.
addDict
(
model
,
"irregularOtherType"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"irregularOtherType"
));
this
.
addDict
(
model
,
"subMethod"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"subMethod"
));
this
.
addDict
(
model
,
"subAddType"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"subAddType"
));
this
.
addDict
(
model
,
"processStatus"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"processStatus"
));
this
.
addDict
(
model
,
"appealResult"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"appealResult"
));
this
.
addDict
(
model
,
"reviewResult"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"reviewResult"
));
this
.
addDict
(
model
,
"reviewSource"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"reviewSource"
));
this
.
addDict
(
model
,
"irregularType"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"irregularType"
));
this
.
addDict
(
model
,
"irregularOtherType"
,
paramService
.
getParamBySecondOrganize
(
"PerformAttendAppeal"
,
"irregularOtherType"
));
super
.
init
(
model
,
context
);
}
/**
* 申诉统计
*/
@PostMapping
(
value
=
"stat"
)
public
String
appealStat
(
@RequestBody
PerformAttendAppealEntity
appeal
)
{
JSONObject
jsonObject
=
new
JSONObject
();
String
busiDesc
=
this
.
getModuleDesc
()
+
"统计"
;
try
{
Rest
<
List
<
AppealInfo
>>
rest
=
this
.
service
.
stat
(
appeal
,
getContext
());
if
(
rest
.
getCode
()
==
YesNoEnum
.
NO
.
getValue
())
{
throw
new
AppException
(
"统计异常!"
);
}
else
{
jsonObject
.
put
(
KEY_RESULT_DATA
,
rest
.
getData
());
}
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
}
catch
(
Exception
e
)
{
log
.
error
(
"申诉审核"
,
e
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
jsonObject
.
put
(
KEY_RESULT_MSG
,
super
.
convertException
(
e
));
}
return
jsonObject
.
toJSONString
();
}
/**
* 申诉审核
*/
@PostMapping
(
value
=
"audit"
)
public
String
appealAudit
(
@RequestBody
PerformAttendAppealEntity
appeal
)
{
JSONObject
jsonObject
=
new
JSONObject
();
String
busiDesc
=
this
.
getModuleDesc
()
+
"审核"
;
try
{
Rest
<
Void
>
audit
=
this
.
service
.
audit
(
appeal
,
getContext
());
if
(
audit
.
getCode
()
==
YesNoEnum
.
NO
.
getValue
())
{
throw
new
AppException
(
"申诉审核异常!"
);
}
recordSysLog
(
request
,
busiDesc
+
" 【成功】"
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
}
catch
(
Exception
e
)
{
log
.
error
(
"申诉审核"
,
e
);
jsonObject
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_FAILURE
);
jsonObject
.
put
(
KEY_RESULT_MSG
,
super
.
convertException
(
e
));
}
return
jsonObject
.
toJSONString
();
}
}
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/module/perform/AppealMapperExt.xml
0 → 100644
View file @
61669359
<?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"
>
<!-- 字段和属性映射 -->
<resultMap
type=
"com.mortals.xhx.module.perform.model.vo.AppealInfo"
id=
"AppealInfo-Map"
>
<result
property=
"staffName"
column=
"staffName"
/>
<result
property=
"deptName"
column=
"deptName"
/>
<result
property=
"ruleName"
column=
"ruleName"
/>
<result
property=
"number"
column=
"number"
/>
</resultMap>
<!-- 获取统计列表 -->
<select
id=
"getStatList"
parameterType=
"paramDto"
resultMap=
"AppealInfo-Map"
>
select
<!-- 获取分组字段 -->
<if
test=
"groupList != null and !groupList.isEmpty()"
>
<foreach
collection=
"groupList"
open=
""
close=
""
index=
"index"
item=
"item"
>
${item},
</foreach>
</if>
count(IFNULL(a.id,0)) number
from mortals_xhx_perform_attend_appeal as a
<trim
suffixOverrides=
"where"
suffix=
""
>
where
<trim
prefixOverrides=
"and"
prefix=
""
>
<include
refid=
"_condition_"
/>
</trim>
</trim>
<include
refid=
"_group_by_"
/>
<include
refid=
"_orderCols_"
/>
</select>
</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