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
4a19ef46
Commit
4a19ef46
authored
Jul 13, 2023
by
姬鋆屾
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.scsmile.cn/zxf/attendance-performance-platform
parents
611d2fe5
d3f9ec47
Changes
18
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
520 additions
and
125 deletions
+520
-125
attendance-performance-manager-ui/admin/src/components/TreeUser.vue
...-performance-manager-ui/admin/src/components/TreeUser.vue
+22
-4
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
...-manager-ui/admin/src/views/feedback/addQuestion/list.vue
+19
-18
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
...anager-ui/admin/src/views/feedback/questionnaire/list.vue
+15
-6
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/list.vue
...manager-ui/admin/src/views/perform/attend/appeal/list.vue
+37
-42
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/components/TreeUser.vue
View file @
4a19ef46
<
template
>
<div>
<el-dialog
title=
"人员选择"
:visible.sync=
"treeDialog"
>
<div
class=
"treeDialog"
>
<el-tree
class=
"treeCss"
:data=
"treeData"
node-key=
"id"
:props=
"defaultProps"
@
node-click=
"handleNodeClick"
></el-tree>
<div
class=
"treeCss"
style=
"margin-left: 10px;"
>
<div
style=
"margin-top: 3px;"
>
{{
cityOptions
.
length
>
0
?
'
请选择人员
'
:
'
请选择部门
'
}}
</div>
<!--
<el-checkbox
v-show=
"cityOptions.length > 0"
:indeterminate=
"isIndeterminate"
v-model=
"checkAll"
@
change=
"handleCheckAllChange"
>
全选
</el-checkbox>
-->
<el-checkbox-group
v-model=
"checkedCities"
>
<el-checkbox
v-for=
"i in cityOptions"
:label=
"i.staffId"
:key=
"i"
>
{{
i
.
staffName
}}
</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div
style=
"text-align: center;margin-top: 10px;"
>
<el-button
size=
"small"
@
click=
"checkedCities = []"
>
重置
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"subUser"
>
确定
</el-button>
</div>
</el-dialog>
</div>
</
template
>
...
...
@@ -10,6 +30,4 @@ export default {
}
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
<
style
lang=
"less"
scoped
></
style
>
\ No newline at end of file
attendance-performance-manager-ui/admin/src/views/feedback/addQuestion/list.vue
View file @
4a19ef46
...
...
@@ -85,18 +85,16 @@
@
node-click=
"handleNodeClick"
></el-tree>
<div
class=
"treeCss"
style=
"margin-left: 10px;"
>
<div
style=
"margin-top: 3px;"
>
{{
city
Options.length > 0 ? '请选择人员' : '请选择部门' }}
{{
user
Options.length > 0 ? '请选择人员' : '请选择部门' }}
</div>
<!-- <el-checkbox v-show="cityOptions.length > 0" :indeterminate="isIndeterminate"
v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> -->
<el-checkbox-group
v-model=
"checkedCities"
>
<el-checkbox
v-for=
"i in cityOptions"
:label=
"i.staffId"
:key=
"i"
>
{{ i.staffName
<el-checkbox-group
v-model=
"checkedUser"
>
<el-checkbox
v-for=
"i in userOptions"
:label=
"i.staffId"
:key=
"i"
>
{{ i.staffName
}}
</el-checkbox>
</el-checkbox-group>
</div>
</div>
<div
style=
"text-align: center;margin-top: 10px;"
>
<el-button
size=
"small"
@
click=
"checked
Cities
= []"
>
重置
</el-button>
<el-button
size=
"small"
@
click=
"checked
User
= []"
>
重置
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"subUser"
>
确定
</el-button>
</div>
</el-dialog>
...
...
@@ -175,28 +173,26 @@ export default {
},
treeDialog
:
0
,
checkAll
:
false
,
cityOptions
:
[],
checkedCities
:
[],
isIndeterminate
:
true
userOptions
:
[],
checkedUser
:
[],
}
},
mounted
()
{
this
.
getDeptData
()
},
methods
:
{
handleCheckAllChange
(
val
)
{
console
.
log
(
val
)
this
.
checkedCities
=
val
?
this
.
cityOptions
:
[];
this
.
isIndeterminate
=
false
;
},
subUser
()
{
console
.
log
(
this
.
checkedCities
)
console
.
log
(
this
.
checkedUser
)
if
(
this
.
checkedUser
.
length
>
0
)
{
this
.
treeDialog
=
0
}
else
{
this
.
$message
.
warning
(
'
请选择人员
'
)
}
},
handleNodeClick
(
data
)
{
if
(
data
.
personList
)
{
this
.
city
Options
=
data
.
personList
// console.log(this.
city
Options)
this
.
user
Options
=
data
.
personList
// console.log(this.
user
Options)
}
},
//获取部门数据
...
...
@@ -253,6 +249,10 @@ export default {
return
JSON
.
stringify
(
FcDesignerOptions
)
},
issueFormBtn
(
formName
)
{
if
(
this
.
checkedUser
.
length
<
1
)
{
this
.
$message
.
warning
(
'
请选择人员后发布问卷
'
)
return
}
this
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
this
.
issueForm
)
...
...
@@ -273,6 +273,7 @@ export default {
})
let
sub
=
{
staffList
:
this
.
checkedUser
,
id
:
''
,
...
this
.
titleForm
,
feedbackTimeStart
:
this
.
issueForm
.
time
[
0
],
...
...
attendance-performance-manager-ui/admin/src/views/feedback/questionnaire/list.vue
View file @
4a19ef46
...
...
@@ -19,17 +19,18 @@
<div
class=
"content"
>
<div
class=
"cLeft"
>
<div
class=
"title"
>
全部数据(220)
<span
style=
"font-weight: 400; font-size: 16px;margin-left: 20px;"
>
已反馈(1)
</span>
<span
style=
"font-weight: 400; font-size: 16px;margin-left: 20px;"
>
未反馈(219)
</span>
<div>
<span
class=
"cLeftTop"
style=
"margin: 0;"
:class=
"selTitle == 1 ? 'title' : ''"
@
click=
"selTitle = 1"
>
全部数据(220)
</span>
<span
class=
"cLeftTop"
:class=
"selTitle == 2 ? 'title' : ''"
@
click=
"selTitle = 2"
>
已反馈(1)
</span>
<span
class=
"cLeftTop"
:class=
"selTitle == 3 ? 'title' : ''"
@
click=
"selTitle = 3"
>
未反馈(219)
</span>
</div>
<el-button
class=
"m15"
type=
"primary"
size=
"small"
>
导出数据
</el-button>
<div
class=
"lBox m15"
>
<div
class=
"treeS"
>
<el-tree
:data=
"treeData"
:props=
"defaultProps"
@
node-click=
"treeSub"
></el-tree>
</div>
<el-table
ref=
"multipleTable"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
...
...
@@ -124,6 +125,7 @@ export default {
Fopthion
:
''
,
drawerAnswer
:
false
,
feedbackData
:
{},
selTitle
:
1
,
tableData
:
[{
date
:
'
2016-05-02
'
,
name
:
'
王小虎
'
,
...
...
@@ -179,7 +181,8 @@ export default {
defaultProps
:
{
children
:
'
children
'
,
label
:
'
label
'
}
},
}
},
mounted
()
{
...
...
@@ -419,6 +422,12 @@ export default {
box-sizing: border-box;
padding: 20px;
.cLeftTop {
font-size: 16px;
margin-left: 20px;
cursor: pointer;
}
.lBox {
display: flex;
// align-items: center
...
...
attendance-performance-manager-ui/admin/src/views/perform/attend/appeal/list.vue
View file @
4a19ef46
...
...
@@ -13,17 +13,8 @@
<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>
...
...
@@ -32,29 +23,17 @@
<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>
...
...
@@ -248,57 +227,66 @@ export default {
activeName
:
"
1
"
,
optionsMonths
:
[
{
value
:
"
1
"
,
value
:
"
2023-01-00 00:00:00
"
,
label
:
"
1月
"
,
},
{
value
:
"
2
"
,
value
:
"
2
023-02-00 00:00:00
"
,
label
:
"
2月
"
,
},
{
value
:
"
3
"
,
value
:
"
2023-03-00 00:00:00
"
,
label
:
"
3月
"
,
},
{
value
:
"
4
"
,
value
:
"
2023-04-00 00:00:00
"
,
label
:
"
4月
"
,
},
{
value
:
"
5
"
,
value
:
"
2023-05-00 00:00:00
"
,
label
:
"
5月
"
,
},
{
value
:
"
6
"
,
value
:
"
2023-06-00 00:00:00
"
,
label
:
"
6月
"
,
},
{
value
:
"
7
"
,
value
:
"
2023-07-00 00:00:00
"
,
label
:
"
7月
"
,
},
{
value
:
"
8
"
,
value
:
"
2023-08-00 00:00:00
"
,
label
:
"
8月
"
,
},
{
value
:
"
9
"
,
value
:
"
2023-09-00 00:00:00
"
,
label
:
"
9月
"
,
},
{
value
:
"
1
0
"
,
value
:
"
2023-10-00 00:00:0
0
"
,
label
:
"
10月
"
,
},
{
value
:
"
11
"
,
value
:
"
2023-11-00 00:00:00
"
,
label
:
"
11月
"
,
},
{
value
:
"
12
"
,
value
:
"
2023-12-00 00:00:00
"
,
label
:
"
12月
"
,
},
],
dateValue
:
"
1
"
,
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
>
...
...
@@ -306,28 +294,35 @@ export default {
width: 100%;
height: 100%;
overflow: hidden;
/deep/.el-tabs__item {
width: 120px;
font-size: 14px;
text-align: center;
}
.content {
width: 100%;
height: 730px;
overflow: hidden;
.search_box {
width: 100%;
height: auto;
text-align: right;
margin-bottom: 10px;
}
.data_box {
width: 100%;
height: 100%;
.top {
width: 100%;
height: 380px;
display: flex;
justify-content: space-between;
.box {
width: 49%;
height: 100%;
...
...
attendance-performance-manager-ui/admin/src/views/staff/perform/stat/list.vue
View file @
4a19ef46
...
...
@@ -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 @
4a19ef46
...
...
@@ -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 @
4a19ef46
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 @
4a19ef46
...
...
@@ -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 @
4a19ef46
...
...
@@ -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 @
4a19ef46
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 @
4a19ef46
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 @
4a19ef46
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 @
4a19ef46
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 @
4a19ef46
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 @
4a19ef46
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 @
4a19ef46
...
...
@@ -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 @
4a19ef46
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 @
4a19ef46
<?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