Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
c6dff835
Commit
c6dff835
authored
May 29, 2020
by
tangzhaoqian
Committed by
chenzg
Jul 05, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新建绩效考核、绩效详情列表、考核列表、考核详情
parent
26bd0b12
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
1104 additions
and
40 deletions
+1104
-40
src/main/java/cn/timer/api/bean/jxgl/JxglAppraisal.java
+18
-0
src/main/java/cn/timer/api/bean/jxgl/JxglAppraisalIndicators.java
+7
-0
src/main/java/cn/timer/api/bean/jxgl/JxglAppraisalIndicatorsT.java
+1
-1
src/main/java/cn/timer/api/bean/jxgl/JxglPerformanceAppraisal.java
+24
-0
src/main/java/cn/timer/api/bean/jxgl/JxglProcessNode.java
+4
-5
src/main/java/cn/timer/api/config/enuminterface/JxglEnumInterface.java
+22
-2
src/main/java/cn/timer/api/controller/jxgl/JxglController.java
+402
-20
src/main/java/cn/timer/api/controller/yggl/service/YgglService.java
+5
-0
src/main/java/cn/timer/api/controller/yggl/service/YgglServiceImpl.java
+61
-0
src/main/java/cn/timer/api/controller/zzgl/service/ZzglBmgwMService.java
+3
-0
src/main/java/cn/timer/api/controller/zzgl/service/ZzglBmgwMServiceImpl.java
+24
-0
src/main/java/cn/timer/api/dao/jxgl/JxglAppraisalMapper.java
+6
-0
src/main/java/cn/timer/api/dao/jxgl/JxglPerformanceAppraisalMapper.java
+8
-0
src/main/java/cn/timer/api/dto/jxgl/AppraisalDetail.java
+73
-0
src/main/java/cn/timer/api/dto/jxgl/AppraisalQuery.java
+39
-0
src/main/java/cn/timer/api/dto/jxgl/BeingAppraisalPerson.java
+4
-0
src/main/java/cn/timer/api/dto/jxgl/PerformanceAppraisal.java
+2
-2
src/main/java/cn/timer/api/dto/jxgl/PerformanceAppraisalQuery.java
+40
-0
src/main/java/cn/timer/api/dto/jxgl/ProcessNode.java
+2
-2
src/main/java/cn/timer/api/dto/jxgl/ProcessNodeUpdate.java
+45
-0
src/main/java/cn/timer/api/utils/Page.java
+19
-1
src/main/java/cn/timer/api/utils/StreamUtils.java
+15
-0
src/main/java/cn/timer/api/utils/router/RouterUtils.java
+0
-2
src/main/resources/mapping/jxgl/JxglAppraisalMapper.xml
+185
-0
src/main/resources/mapping/jxgl/JxglPerformanceAppraisalMapper.xml
+95
-5
No files found.
src/main/java/cn/timer/api/bean/jxgl/JxglAppraisal.java
View file @
c6dff835
...
...
@@ -50,10 +50,12 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
private
String
name
;
@ApiModelProperty
(
value
=
"考核说明"
,
example
=
"考核说明"
)
private
String
appraisalExplain
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
"2020-10-10 10:10:10"
)
private
Date
createTime
;
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
value
=
"更新时间"
,
example
=
"2020-10-10 10:10:10"
)
private
Date
updateTime
;
...
...
@@ -61,4 +63,19 @@ public class JxglAppraisal extends Model<JxglAppraisal> {
@ApiModelProperty
(
value
=
"状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档"
,
example
=
"0"
)
private
Integer
sts
;
@TableField
(
exist
=
false
)
private
String
userName
;
@TableField
(
exist
=
false
)
private
String
phone
;
@TableField
(
exist
=
false
)
private
String
bmName
;
@TableField
(
exist
=
false
)
private
String
executorName
;
@TableField
(
exist
=
false
)
private
Double
comprehensiveScore
;
@TableField
(
exist
=
false
)
private
String
level
;
}
\ No newline at end of file
src/main/java/cn/timer/api/bean/jxgl/JxglAppraisalIndicators.java
View file @
c6dff835
package
cn
.
timer
.
api
.
bean
.
jxgl
;
import
java.util.Date
;
import
java.util.List
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
...
...
@@ -67,4 +68,9 @@ public class JxglAppraisalIndicators extends Model<JxglAppraisalIndicators> {
@ApiModelProperty
(
value
=
"类型 0 非固定 1 固定"
,
example
=
"0"
)
private
Integer
type
;
@TableField
(
exist
=
false
)
private
List
<
JxglAppraisalIndicatorsAssessment
>
appraisalIndicatorsAssessments
;
@TableField
(
exist
=
false
)
private
List
<
JxglAppraisalItem
>
appraisalItems
;
}
\ No newline at end of file
src/main/java/cn/timer/api/bean/jxgl/JxglAppraisalIndicatorsT.java
View file @
c6dff835
...
...
@@ -67,7 +67,7 @@ public class JxglAppraisalIndicatorsT extends Model<JxglAppraisalIndicatorsT> {
private
Date
updateTime
;
@ApiModelProperty
(
value
=
"类型"
,
example
=
"0 非固定 1 固定"
)
private
String
type
;
private
Integer
type
;
@TableField
(
exist
=
false
)
// 是否转换
@ApiModelProperty
(
value
=
"考核项模板"
,
example
=
""
)
...
...
src/main/java/cn/timer/api/bean/jxgl/JxglPerformanceAppraisal.java
View file @
c6dff835
...
...
@@ -5,7 +5,9 @@ import java.util.Date;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
...
...
@@ -74,4 +76,25 @@ public class JxglPerformanceAppraisal extends Model<JxglPerformanceAppraisal> {
@ApiModelProperty
(
value
=
"被考核人员"
,
example
=
""
)
private
byte
[]
beingAppraisalPerson
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
"创建时间"
)
private
Date
createTime
;
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
value
=
"最近处理时间 "
,
example
=
"最近处理时间"
)
private
Date
updateTime
;
@TableField
(
exist
=
false
)
private
Integer
targetSeting
;
@TableField
(
exist
=
false
)
private
Integer
performanceScore
;
@TableField
(
exist
=
false
)
private
Integer
resultVerification
;
@TableField
(
exist
=
false
)
private
Integer
performanceArchive
;
}
\ No newline at end of file
src/main/java/cn/timer/api/bean/jxgl/JxglProcessNode.java
View file @
c6dff835
...
...
@@ -37,14 +37,13 @@ public class JxglProcessNode extends Model<JxglProcessNode> {
@Id
@GeneratedValue
@TableId
(
type
=
IdType
.
AUTO
)
@ApiModelProperty
(
value
=
"编号 编号"
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"编号"
,
example
=
"10"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"考核id
考核id
"
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"考核id"
,
example
=
"10"
)
private
Integer
appraisalId
;
@ApiModelProperty
(
value
=
"执行人id(员工id)
执行人id(员工id)
"
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"执行人id(员工id)"
,
example
=
"10"
)
private
Integer
executorId
;
@ApiModelProperty
(
value
=
"执行人名称"
,
example
=
"执行人名称"
)
...
...
@@ -62,7 +61,7 @@ public class JxglProcessNode extends Model<JxglProcessNode> {
@ApiModelProperty
(
value
=
"主管层级 0直属主管 1上上级主管"
,
example
=
"10"
)
private
Integer
leaderTier
;
@ApiModelProperty
(
value
=
"权重
权重
"
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"权重"
,
example
=
"10"
)
private
Integer
weight
;
@ApiModelProperty
(
value
=
"状态 0未执行 1执行中 2 已执行"
,
example
=
"10"
)
...
...
src/main/java/cn/timer/api/config/enuminterface/JxglEnumInterface.java
View file @
c6dff835
...
...
@@ -96,7 +96,7 @@ public interface JxglEnumInterface {
}
/**
*考核 状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档
*考核 状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7
绩效
归档
*/
@Getter
enum
AppraisalSts
implements
JxglEnumInterface
{
...
...
@@ -121,7 +121,18 @@ public interface JxglEnumInterface {
*/
@Getter
enum
ExecuteType
implements
JxglEnumInterface
{
BEING_APPRAISAL_PERSON
(
0
,
"被考核人"
),
LEADER
(
1
,
"主管"
),
SPECIFIED_MEMBER
(
2
,
"指定成员"
);
/**
* 0被考核人
*/
BEING_APPRAISAL_PERSON
(
0
,
"被考核人"
),
/**
* 1主管
*/
LEADER
(
1
,
"主管"
),
/**
* 2指定成员
*/
SPECIFIED_MEMBER
(
2
,
"指定成员"
);
private
Integer
type
;
...
...
@@ -132,6 +143,15 @@ public interface JxglEnumInterface {
this
.
name
=
name
;
}
public
static
String
getName
(
int
index
)
{
ExecuteType
[]
executeTypes
=
ExecuteType
.
values
();
String
res
=
""
;
if
(
executeTypes
.
length
>
index
)
{
res
=
executeTypes
[
index
].
getName
();
}
return
res
;
}
}
/**
...
...
src/main/java/cn/timer/api/controller/jxgl/JxglController.java
View file @
c6dff835
package
cn
.
timer
.
api
.
controller
.
jxgl
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.function.Function
;
import
java.util.function.Predicate
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -10,42 +14,77 @@ import org.springframework.web.bind.annotation.DeleteMapping;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.timer.api.bean.jxgl.JxglAppraisal
;
import
cn.timer.api.bean.jxgl.JxglAppraisalAssessment
;
import
cn.timer.api.bean.jxgl.JxglAppraisalIndicators
;
import
cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsT
;
import
cn.timer.api.bean.jxgl.JxglAppraisalItem
;
import
cn.timer.api.bean.jxgl.JxglAppraisalItemT
;
import
cn.timer.api.bean.jxgl.JxglAppraisalLog
;
import
cn.timer.api.bean.jxgl.JxglAppraisalT
;
import
cn.timer.api.bean.jxgl.JxglBasicSetting
;
import
cn.timer.api.bean.jxgl.JxglPerformanceAppraisal
;
import
cn.timer.api.bean.jxgl.JxglPerformanceRating
;
import
cn.timer.api.bean.jxgl.JxglProcessNode
;
import
cn.timer.api.bean.qyzx.QyzxEmpEntAsso
;
import
cn.timer.api.bean.spmk.SpmkApproveSummary
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.config.annotation.CurrentUser
;
import
cn.timer.api.config.annotation.UserBean
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.AppraisalLogType
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.AppraisalSts
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.BeingAppraisalSts
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.BeingAppraisalType
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.ExecuteType
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessNodeSts
;
import
cn.timer.api.config.enuminterface.JxglEnumInterface.ProcessType
;
import
cn.timer.api.config.enums.CommonEnum
;
import
cn.timer.api.config.exception.CustomException
;
import
cn.timer.api.controller.yggl.service.YgglService
;
import
cn.timer.api.controller.zzgl.service.ZzglBmgwMService
;
import
cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsTMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalItemMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalItemTMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalLogMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalMapper
;
import
cn.timer.api.dao.jxgl.JxglAppraisalTMapper
;
import
cn.timer.api.dao.jxgl.JxglBasicSettingMapper
;
import
cn.timer.api.dao.jxgl.JxglPerformanceAppraisalMapper
;
import
cn.timer.api.dao.jxgl.JxglPerformanceRatingMapper
;
import
cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper
;
import
cn.timer.api.dao.yggl.YgglMainEmpMapper
;
import
cn.timer.api.dto.jxgl.AppraisalDetail
;
import
cn.timer.api.dto.jxgl.AppraisalQuery
;
import
cn.timer.api.dto.jxgl.BeingAppraisalPerson
;
import
cn.timer.api.dto.jxgl.PerformanceAppraisalDto
;
import
cn.timer.api.dto.jxgl.PerformanceAppraisal
;
import
cn.timer.api.dto.jxgl.PerformanceAppraisalQuery
;
import
cn.timer.api.dto.jxgl.ProcessNode
;
import
cn.timer.api.dto.jxgl.ProcessNodeUpdate
;
import
cn.timer.api.utils.Result
;
import
cn.timer.api.utils.ResultUtil
;
import
cn.timer.api.utils.StreamUtils
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.models.auth.In
;
@Api
(
tags
=
"3.1绩效管理"
)
@RestController
...
...
@@ -83,6 +122,7 @@ public class JxglController {
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
...
...
@@ -150,6 +190,7 @@ public class JxglController {
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
...
...
@@ -206,12 +247,16 @@ public class JxglController {
@GetMapping
(
value
=
"/selects_appraisal_t"
)
@ApiOperation
(
value
=
"4.查询-考核模板-列表"
,
httpMethod
=
"GET"
,
notes
=
"查询-考核模板-列表"
)
@ApiOperationSupport
(
order
=
4
)
public
Result
<
Object
>
selectListAT
(
@CurrentUser
UserBean
userBean
){
public
Result
<
Object
>
selectListAT
(
@CurrentUser
UserBean
userBean
,
cn
.
timer
.
api
.
utils
.
Page
page
){
List
<
JxglAppraisalT
>
listAT
=
jxglAppraisalTMapper
.
selectList
(
new
QueryWrapper
<
JxglAppraisalT
>().
lambda
()
IPage
<
JxglAppraisalT
>
p
=
new
Page
<
JxglAppraisalT
>(
page
.
getCurrentPage
(),
page
.
getTotalPage
());
IPage
<
JxglAppraisalT
>
pageAT
=
jxglAppraisalTMapper
.
selectPage
(
p
,
new
QueryWrapper
<
JxglAppraisalT
>().
lambda
()
.
eq
(
JxglAppraisalT:
:
getOrgCode
,
userBean
.
getOrgCode
()));
return
ResultUtil
.
data
(
listAT
);
List
<
JxglAppraisalT
>
listAT
=
pageAT
.
getRecords
();
return
ResultUtil
.
data
(
pageAT
,
listAT
);
}
...
...
@@ -240,6 +285,7 @@ public class JxglController {
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
...
...
@@ -255,44 +301,380 @@ public class JxglController {
}
@Autowired
private
ZzglBmgwMService
zzglBmgwMService
;
@Autowired
private
YgglService
ygglService
;
@Autowired
private
JxglPerformanceAppraisalMapper
jxglPerformanceAppraisalMapper
;
@Autowired
private
JxglAppraisalMapper
jxglAppraisalMapper
;
@Autowired
private
JxglAppraisalIndicatorsMapper
jxglAppraisalIndicatorsMapper
;
@Autowired
private
JxglAppraisalItemMapper
jsxglAppraisalItemMapper
;
@Autowired
private
JxglAppraisalLogMapper
jxglAppraisalLogMapper
;
@Autowired
private
YgglMainEmpMapper
ygglMainEmpMapper
;
/**
* 新增-绩效考核
*/
@PostMapping
(
value
=
"/save_performance_appraisal"
)
@ApiOperation
(
value
=
"7.新增-绩效考核"
,
httpMethod
=
"POST"
,
notes
=
"新增-绩效考核"
)
@ApiOperationSupport
(
order
=
7
)
public
Result
<
Object
>
savePA
(
@CurrentUser
UserBean
userBean
,
@Validated
@RequestBody
PerformanceAppraisal
Dto
performanceAppraisalDto
)
throws
Exception
{
public
Result
<
Object
>
savePA
(
@CurrentUser
UserBean
userBean
,
@Validated
@RequestBody
PerformanceAppraisal
performanceAppraisal
)
throws
Exception
{
Integer
orgCode
=
userBean
.
getOrgCode
();
JxglPerformanceAppraisal
pA
=
JxglPerformanceAppraisal
.
builder
().
build
();
BeanUtil
.
copyProperties
(
performanceAppraisalDto
,
pA
,
"processNode"
,
"beingAppraisalPerson"
,
"appraisalTId"
);
pA
.
setProcessNode
(
ObjectUtil
.
serialize
(
performanceAppraisalDto
.
getProcessNode
()));
pA
.
setBeingAppraisalPerson
(
ObjectUtil
.
serialize
(
performanceAppraisalDto
.
getBeingAppraisalPerson
()));
BeanUtil
.
copyProperties
(
performanceAppraisal
,
pA
,
"processNode"
,
"beingAppraisalPerson"
,
"appraisalTId"
);
pA
.
setProcessNode
(
ObjectUtil
.
serialize
(
performanceAppraisal
.
getProcessNode
()));
pA
.
setBeingAppraisalPerson
(
ObjectUtil
.
serialize
(
performanceAppraisal
.
getBeingAppraisalPerson
()));
// 新增 绩效考核
pA
.
insert
();
System
.
out
.
println
(
"新增 绩效考核 :"
+
pA
);
List
<
ProcessNode
>
listPN
=
performanceAppraisal
.
getProcessNode
();
List
<
BeingAppraisalPerson
>
listBAP
=
performanceAppraisal
.
getBeingAppraisalPerson
();
List
<
ProcessNode
>
listPN
=
performanceAppraisalDto
.
getProcessNode
();
List
<
BeingAppraisalPerson
>
listBAP
=
performanceAppraisalDto
.
getBeingAppraisalPerson
();
// 被考核人员
List
<
BeingAppraisalPerson
>
listEmp
=
listBAP
.
stream
()
List
<
Integer
>
listEmpId
=
listBAP
.
stream
()
.
filter
(
bAP
->
BeingAppraisalType
.
EMPLOYEE
.
getType
().
equals
(
bAP
.
getType
())
&&
BeingAppraisalSts
.
NEED
.
getType
().
equals
(
bAP
.
getType
()))
BeingAppraisalSts
.
NEED
.
getType
().
equals
(
bAP
.
getSts
()))
.
map
(
BeingAppraisalPerson:
:
getId
)
.
collect
(
Collectors
.
toList
());
// 被考核部门
List
<
BeingAppraisalPerson
>
listDept
=
listBAP
.
stream
()
// 被考核部门
id
List
<
Integer
>
listDeptId
=
listBAP
.
stream
()
.
filter
(
bAP
->
BeingAppraisalType
.
DEPARTMENT
.
getType
().
equals
(
bAP
.
getType
())
&&
!
BeingAppraisalSts
.
NEED
.
getType
().
equals
(
bAP
.
getType
()))
BeingAppraisalType
.
DEPARTMENT
.
getType
().
equals
(
bAP
.
getType
()))
.
map
(
BeingAppraisalPerson:
:
getId
)
.
collect
(
Collectors
.
toList
());
List
<
YgglMainEmp
>
listEmp2
=
ListUtil
.
toList
();
for
(
Integer
deptId
:
listDeptId
)
{
CollUtil
.
addAll
(
listEmp2
,
zzglBmgwMService
.
selectOtherlistent
(
userBean
.
getOrgCode
(),
deptId
));
}
if
(!
CollUtil
.
isEmpty
(
listEmp2
))
{
// 员工信息数据 去重
List
<
Integer
>
listEmp2Id
=
listEmp2
.
stream
()
.
filter
(
StreamUtils
.
distinctByKey
(
e
->
e
.
getEmpNum
()))
.
map
(
YgglMainEmp:
:
getEmpNum
)
.
collect
(
Collectors
.
toList
());
// 合并 集合
CollUtil
.
addAll
(
listEmpId
,
listEmp2Id
);
}
// 无需被考核人
List
<
BeingAppraisalPerson
>
listNotEmp
=
listBAP
.
stream
()
// 无需被考核人
id
List
<
Integer
>
listNotEmpId
=
listBAP
.
stream
()
.
filter
(
bAP
->
BeingAppraisalType
.
EMPLOYEE
.
getType
().
equals
(
bAP
.
getType
())
&&
!
BeingAppraisalSts
.
NOT_NEED
.
getType
().
equals
(
bAP
.
getType
()))
BeingAppraisalSts
.
NOT_NEED
.
getType
().
equals
(
bAP
.
getSts
()))
.
map
(
BeingAppraisalPerson:
:
getId
)
.
collect
(
Collectors
.
toList
());
// 过滤掉 无需被考核人id
listEmpId
=
listEmpId
.
stream
().
filter
(
e
->
!
listNotEmpId
.
contains
(
e
)).
collect
(
Collectors
.
toList
());
// 考核模板
JxglAppraisalT
aT
=
jxglAppraisalTMapper
.
selectById
(
performanceAppraisal
.
getAppraisalTId
());
if
(
aT
==
null
)
{
throw
new
CustomException
(
"考核模板不存在"
);
}
JxglProcessNode
processNode
=
JxglProcessNode
.
builder
().
build
();
JxglAppraisal
appraisal
=
JxglAppraisal
.
builder
().
build
();
JxglAppraisalIndicators
appraisalIndicators
=
JxglAppraisalIndicators
.
builder
().
build
();
JxglAppraisalItem
appraisalItem
=
JxglAppraisalItem
.
builder
().
build
();
JxglAppraisalLog
appraisalLog
=
JxglAppraisalLog
.
builder
().
build
();
System
.
out
.
println
(
"listEmpId----"
+
listEmpId
);
for
(
Integer
bAP
:
listEmpId
)
{
// 考核
appraisal
.
setPerformanceAppraisalId
(
pA
.
getId
());
appraisal
.
setEmpNum
(
bAP
);
appraisal
.
setName
(
aT
.
getName
());
appraisal
.
setAppraisalExplain
(
aT
.
getAppraisalExplain
());
appraisal
.
setSts
(
AppraisalSts
.
TARGET_FILL_IN
.
getType
());
// 新增 考核
appraisal
.
insert
();
System
.
out
.
println
(
"新增 考核:"
+
appraisal
);
listPN
.
stream
().
forEach
(
pN
->
{
Integer
executeType
=
pN
.
getExecuteType
();
// 流程节点
processNode
.
setAppraisalId
(
appraisal
.
getId
());
processNode
.
setExecuteType
(
executeType
);
processNode
.
setLeaderTier
(
pN
.
getLeaderTier
());
processNode
.
setName
(
ExecuteType
.
getName
(
executeType
));
Integer
processType
=
pN
.
getProcessType
();
processNode
.
setProcessType
(
processType
);
if
(
ProcessType
.
TARGET_FILL_IN
.
getType
().
equals
(
processType
))
{
processNode
.
setSts
(
ProcessNodeSts
.
IN_EXECUTION
.
getType
());
}
else
{
processNode
.
setSts
(
ProcessNodeSts
.
NON_EXECUTION
.
getType
());
}
processNode
.
setWeight
(
pN
.
getWeight
());
if
(
ExecuteType
.
BEING_APPRAISAL_PERSON
.
getType
().
equals
(
executeType
))
{
processNode
.
setExecutorId
(
bAP
);
}
else
if
(
ExecuteType
.
LEADER
.
getType
().
equals
(
executeType
))
{
processNode
.
setExecutorId
(
ygglService
.
selectLeaderEmpNumById
(
userBean
.
getOrgCode
(),
bAP
,
pN
.
getLeaderTier
()));
}
else
if
(
ExecuteType
.
SPECIFIED_MEMBER
.
getType
().
equals
(
executeType
))
{
processNode
.
setExecutorId
(
pN
.
getExecutorId
());
}
// 新增 流程节点
processNode
.
insert
();
System
.
out
.
println
(
"新增 流程节点:"
+
processNode
);
});
List
<
JxglAppraisalIndicatorsT
>
listAIT
=
jxglAppraisalIndicatorsTMapper
.
selectList
(
new
QueryWrapper
<
JxglAppraisalIndicatorsT
>().
lambda
()
.
eq
(
JxglAppraisalIndicatorsT:
:
getAppraisalTId
,
aT
.
getId
()));
if
(
listAIT
==
null
||
listAIT
.
size
()
<=
0
)
{
throw
new
CustomException
(
"考核指标不存在"
);
}
listAIT
.
stream
().
forEach
(
aIT
->
{
// 考核指标
// appraisalIndicators.setIsEdit(aIT.getIsEdit());
// appraisalIndicators.setIsSetWeight(aIT.getIsSetWeight());
// appraisalIndicators.setTitle(aIT.getTitle());
// appraisalIndicators.setType(aIT.getType());
// appraisalIndicators.setWeight(aIT.getWeight());
BeanUtil
.
copyProperties
(
aIT
,
appraisalIndicators
,
"appraisalId"
,
"createTime"
,
"updateTime"
);
appraisalIndicators
.
setAppraisalId
(
appraisal
.
getId
());
// 新增 考核指标
appraisalIndicators
.
insert
();
System
.
out
.
println
(
"新增 考核指标:"
+
appraisalIndicators
);
List
<
JxglAppraisalItemT
>
listAItemT
=
jsxglAppraisalItemTMapper
.
selectList
(
new
QueryWrapper
<
JxglAppraisalItemT
>().
lambda
()
.
eq
(
JxglAppraisalItemT:
:
getAppraisalIndicatorsTId
,
aIT
.
getId
()));
if
(
listAItemT
!=
null
&&
listAItemT
.
size
()
>
0
)
{
listAItemT
.
stream
().
forEach
(
aItemT
->
{
BeanUtil
.
copyProperties
(
aItemT
,
appraisalItem
,
"appraisalIndicatorsTId"
);
appraisalItem
.
setAppraisalIndicatorsId
(
appraisalIndicators
.
getId
());
// 新增 考核项
appraisalItem
.
insert
();
System
.
out
.
println
(
"新增 考核项:"
+
appraisalItem
);
});
}
});
YgglMainEmp
yME
=
ygglMainEmpMapper
.
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
()
.
select
(
YgglMainEmp:
:
getName
)
.
eq
(
YgglMainEmp:
:
getOrgCode
,
orgCode
)
.
eq
(
YgglMainEmp:
:
getEmpNum
,
bAP
));
appraisalLog
.
setAppraisalId
(
appraisal
.
getId
());
appraisalLog
.
setExecutorId
(
bAP
);
appraisalLog
.
setExecutorName
(
yME
.
getName
());
appraisalLog
.
setType
(
AppraisalLogType
.
START
.
getType
());
appraisalLog
.
insert
();
}
// System.out.println("listEmpId----"+listEmpId);
// System.out.println(listDeptId);
// System.out.println(listNotEmpId);
return
ResultUtil
.
success
();
}
/**
* 查询-绩效考核-列表
*/
@PostMapping
(
value
=
"/selects_performance_appraisal"
)
@ApiOperation
(
value
=
"8.查询-绩效考核-列表"
,
httpMethod
=
"POST"
,
notes
=
"查询-绩效考核-列表"
)
@ApiOperationSupport
(
order
=
8
)
public
Result
<
Object
>
selectsPA
(
@CurrentUser
UserBean
userBean
,
@RequestBody
PerformanceAppraisalQuery
query
){
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
if
(
count
<=
0
)
{
return
ResultUtil
.
error
(
"无权限查看"
);
}
IPage
<
SpmkApproveSummary
>
page
=
new
Page
<
SpmkApproveSummary
>(
query
.
getCurrentPage
(),
query
.
getTotalPage
());
query
.
setOrgCode
(
userBean
.
getOrgCode
());
IPage
<
JxglPerformanceAppraisal
>
pagePA
=
jxglPerformanceAppraisalMapper
.
selectListByQuery
(
page
,
query
);
List
<
JxglPerformanceAppraisal
>
listPA
=
pagePA
.
getRecords
();
return
ResultUtil
.
data
(
pagePA
,
listPA
);
}
/**
* 查询-考核-列表
*/
@PostMapping
(
value
=
"/selects_appraisal"
)
@ApiOperation
(
value
=
"10.查询-考核-列表"
,
httpMethod
=
"POST"
,
notes
=
"查询-考核-列表"
)
@ApiOperationSupport
(
order
=
10
)
public
Result
<
Object
>
selectsA
(
@CurrentUser
UserBean
userBean
,
@RequestBody
AppraisalQuery
query
){
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
if
(
count
<=
0
)
{
return
ResultUtil
.
error
(
"无权限查看"
);
}
IPage
<
JxglAppraisal
>
page
=
new
Page
<
JxglAppraisal
>(
query
.
getCurrentPage
(),
query
.
getTotalPage
());
query
.
setOrgCode
(
userBean
.
getOrgCode
());
IPage
<
JxglAppraisal
>
pageA
=
jxglAppraisalMapper
.
selectListByQuery
(
page
,
query
);
List
<
JxglAppraisal
>
listPA
=
pageA
.
getRecords
();
return
ResultUtil
.
data
(
pageA
,
listPA
);
}
/**
* 查询-考核-详情
*/
@GetMapping
(
value
=
"/select_appraisal/{id}"
)
@ApiOperation
(
value
=
"11.查询-考核-详情"
,
httpMethod
=
"GET"
,
notes
=
"查询-考核-详情"
)
@ApiOperationSupport
(
order
=
11
)
public
Result
<
Object
>
selectA
(
@CurrentUser
UserBean
userBean
,
@PathVariable
Integer
id
){
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
if
(
count
<=
0
)
{
return
ResultUtil
.
error
(
"无权限查看"
);
}
AppraisalDetail
aD
=
jxglAppraisalMapper
.
selectDetailById
(
userBean
.
getOrgCode
(),
id
);
return
ResultUtil
.
data
(
aD
);
}
/**
* 修改-流程执行人-转派
*/
@PutMapping
(
value
=
"/update_process_node"
)
@ApiOperation
(
value
=
"12.修改-流程执行人-转派"
,
httpMethod
=
"PUT"
,
notes
=
"修改-流程执行人-转派"
)
@ApiOperationSupport
(
order
=
12
)
public
Result
<
Object
>
updatePN
(
@CurrentUser
UserBean
userBean
,
@RequestBody
ProcessNodeUpdate
processNodeUpdate
){
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
if
(
count
<=
0
)
{
return
ResultUtil
.
error
(
"无权限查看"
);
}
Integer
count2
=
jxglAppraisalMapper
.
selectCount
(
new
QueryWrapper
<
JxglAppraisal
>().
lambda
()
.
eq
(
JxglAppraisal:
:
getId
,
processNodeUpdate
.
getAppraisalId
())
.
in
(
JxglAppraisal:
:
getSts
,
AppraisalSts
.
ASSESSMENT_COMPLETE
.
getType
(),
AppraisalSts
.
TERMINATION_ASSESSMENT
.
getType
(),
AppraisalSts
.
PERFORMANCE_ARCHIVE
.
getType
()));
if
(
count2
>
0
)
{
return
ResultUtil
.
error
(
"考核已结束"
);
}
JxglProcessNode
pN
=
JxglProcessNode
.
builder
().
build
();
BeanUtil
.
copyProperties
(
processNodeUpdate
,
pN
);
pN
.
updateById
();
return
ResultUtil
.
data
(
pN
);
}
/**
* 终止-考核
*/
@PutMapping
(
value
=
"/termination_assessment"
)
@ApiOperation
(
value
=
"13.终止-考核"
,
httpMethod
=
"PUT"
,
notes
=
"终止-考核"
)
@ApiOperationSupport
(
order
=
13
)
public
Result
<
Object
>
terminationAssessment
(
@CurrentUser
UserBean
userBean
,
@PathVariable
Integer
id
){
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
if
(
count
<=
0
)
{
return
ResultUtil
.
error
(
"无权限查看"
);
}
JxglAppraisal
.
builder
().
id
(
id
).
sts
(
AppraisalSts
.
TERMINATION_ASSESSMENT
.
getType
()).
build
().
updateById
();
return
ResultUtil
.
success
();
}
@Autowired
JxglAppraisalAssessmentMapper
appraisalAssessmentMapper
;
/**
* 新增-考核评定
*/
@PutMapping
(
value
=
"/save_appraisal_assessment"
)
@ApiOperation
(
value
=
"13.新增-考核评定"
,
httpMethod
=
"PUT"
,
notes
=
"新增-考核评定"
)
@ApiOperationSupport
(
order
=
13
)
public
Result
<
Object
>
saveAA
(
@CurrentUser
UserBean
userBean
,
@RequestBody
JxglAppraisalAssessment
appraisalAssessment
){
Integer
orgCode
=
userBean
.
getOrgCode
();
Integer
count
=
new
LambdaQueryChainWrapper
<
QyzxEmpEntAsso
>(
qyzxEmpEntAssoMapper
)
.
eq
(
QyzxEmpEntAsso:
:
getEmpNum
,
userBean
.
getEmpNum
())
.
eq
(
QyzxEmpEntAsso:
:
getOrgCode
,
orgCode
)
.
in
(
QyzxEmpEntAsso:
:
getUserType
,
CommonEnum
.
U_TYPE_ADMIN
.
getType
(),
CommonEnum
.
U_TYPE_C_ADMIN
.
getType
())
.
count
();
if
(
count
<=
0
)
{
return
ResultUtil
.
error
(
"无权限查看"
);
}
Integer
count2
=
jxglAppraisalMapper
.
selectCount
(
new
QueryWrapper
<
JxglAppraisal
>().
lambda
()
.
eq
(
JxglAppraisal:
:
getId
,
appraisalAssessment
.
getAppraisalId
())
.
in
(
JxglAppraisal:
:
getSts
,
AppraisalSts
.
ASSESSMENT_COMPLETE
.
getType
(),
AppraisalSts
.
TERMINATION_ASSESSMENT
.
getType
(),
AppraisalSts
.
PERFORMANCE_ARCHIVE
.
getType
()));
if
(
count2
>
0
)
{
return
ResultUtil
.
error
(
"考核已结束"
);
}
appraisalAssessment
.
insert
();
return
ResultUtil
.
data
(
appraisalAssessment
);
}
}
src/main/java/cn/timer/api/controller/yggl/service/YgglService.java
View file @
c6dff835
...
...
@@ -8,4 +8,9 @@ public interface YgglService {
void
applicationResignation
(
LzygQueryDto
lzygQueryDto
);
void
applicationRegularization
(
YgzzDto
ygzzDto
);
/*
* 根据 员工ID 和 主管层级 查询 主管
*/
Integer
selectLeaderEmpNumById
(
Integer
orgCode
,
Integer
id
,
Integer
leave
);
}
src/main/java/cn/timer/api/controller/yggl/service/YgglServiceImpl.java
View file @
c6dff835
package
cn
.
timer
.
api
.
controller
.
yggl
.
service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.bean.yggl.YgglMainLzb
;
import
cn.timer.api.bean.zzgl.ZzglBmgwM
;
import
cn.timer.api.config.enuminterface.YgEnumInterface
;
import
cn.timer.api.dao.yggl.YgglMainEmpMapper
;
import
cn.timer.api.dao.zzgl.ZzglBmgwMMapper
;
import
cn.timer.api.dto.yggl.LzygQueryDto
;
import
cn.timer.api.dto.yggl.YgzzDto
;
@Service
public
class
YgglServiceImpl
implements
YgglService
{
@Autowired
private
YgglMainEmpMapper
ygglMainEmpMapper
;
@Autowired
private
ZzglBmgwMMapper
zzglBmgwMMapper
;
@Override
public
void
applicationResignation
(
LzygQueryDto
lzygQueryDto
)
{
// TODO Auto-generated method stub
...
...
@@ -50,4 +65,50 @@ public class YgglServiceImpl implements YgglService {
.
build
().
update
(
new
UpdateWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getEmpNum
,
ygzzDto
.
getEmpNum
()));
}
@Override
public
Integer
selectLeaderEmpNumById
(
Integer
orgCode
,
Integer
id
,
Integer
leave
)
{
// TODO Auto-generated method stub
YgglMainEmp
mainEmp
=
ygglMainEmpMapper
.
selectOne
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
()
.
select
(
YgglMainEmp:
:
getBmgwId
)
.
eq
(
YgglMainEmp:
:
getEmpNum
,
id
));
Integer
gWId
=
mainEmp
!=
null
?
mainEmp
.
getBmgwId
()
:
null
;
// 企业所有部门岗位
List
<
ZzglBmgwM
>
listBM
=
zzglBmgwMMapper
.
selectList
(
new
QueryWrapper
<
ZzglBmgwM
>().
lambda
()
.
eq
(
ZzglBmgwM:
:
getOrgCode
,
orgCode
));
// 岗位
ZzglBmgwM
gW
=
CollUtil
.
getFirst
(
listBM
.
stream
().
filter
(
bM
->
bM
.
getId
().
equals
(
gWId
)).
collect
(
Collectors
.
toList
()));
// 岗位id
Integer
baseBmgwId
=
gW
!=
null
?
gW
.
getUpId
()
:
null
;
// 部门列表
// List<ZzglBmgwM> listbM = ListUtil.toList();
// 指定 主管id
Integer
leaderId
=
null
;
for
(
int
i
=
0
,
n
=
leave
;
i
<
n
;
i
++)
{
ZzglBmgwM
bmgwM
=
getLeaderEmp
(
listBM
,
baseBmgwId
);
baseBmgwId
=
bmgwM
!=
null
?
bmgwM
.
getId
()
:
null
;
if
(
i
==
n
-
1
)
{
// listbM.add(bmgwM);
leaderId
=
baseBmgwId
;
}
}
return
leaderId
;
}
private
ZzglBmgwM
getLeaderEmp
(
List
<
ZzglBmgwM
>
listBM
,
Integer
baseBmgwId
)
{
ZzglBmgwM
zzglBmgwM
=
baseBmgwId
!=
null
?
CollUtil
.
getFirst
(
listBM
.
stream
()
.
filter
(
bM
->
bM
.
getId
().
equals
(
baseBmgwId
)).
collect
(
Collectors
.
toList
()))
:
null
;
return
zzglBmgwM
;
}
}
src/main/java/cn/timer/api/controller/zzgl/service/ZzglBmgwMService.java
View file @
c6dff835
...
...
@@ -2,6 +2,7 @@ package cn.timer.api.controller.zzgl.service;
import
java.util.List
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.dto.zzgl.UpEmpDeptDto
;
/**
...
...
@@ -17,4 +18,6 @@ public interface ZzglBmgwMService {
List
<
Integer
>
selectMenuByPostId
(
Integer
id
);
public
List
<
YgglMainEmp
>
selectOtherlistent
(
Integer
orgCode
,
Integer
id
);
}
src/main/java/cn/timer/api/controller/zzgl/service/ZzglBmgwMServiceImpl.java
View file @
c6dff835
...
...
@@ -9,6 +9,8 @@ import java.util.stream.Collectors;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper
;
...
...
@@ -101,4 +103,26 @@ public class ZzglBmgwMServiceImpl implements ZzglBmgwMService {
return
menuList
;
}
@Override
public
List
<
YgglMainEmp
>
selectOtherlistent
(
Integer
orgCode
,
Integer
id
){
ArrayList
<
Integer
>
list
=
new
ArrayList
<
Integer
>();
List
<
ZzglBmgwM
>
zzglBmgwMs
=
ZzglBmgwM
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
ZzglBmgwM
>().
lambda
()
.
eq
(
ZzglBmgwM:
:
getOrgCode
,
orgCode
));
list
.
add
(
id
);
ZzglBmgwM
.
getDepts
(
list
,
id
,
zzglBmgwMs
);
if
(
list
==
null
||
list
.
size
()
==
0
)
{
return
null
;
}
else
{
LambdaQueryWrapper
<
YgglMainEmp
>
ygglMainEmpsLambdaQueryWrapper
=
new
LambdaQueryWrapper
<>();
ygglMainEmpsLambdaQueryWrapper
.
select
(
YgglMainEmp:
:
getId
,
YgglMainEmp:
:
getEmpNum
,
YgglMainEmp:
:
getName
,
YgglMainEmp:
:
getPhone
,
YgglMainEmp:
:
getBmgwId
)
.
eq
(
YgglMainEmp:
:
getOrgCode
,
orgCode
).
and
(
i
->
i
.
in
(
YgglMainEmp:
:
getBmgwId
,
list
.
toArray
()));
List
<
YgglMainEmp
>
ygglMainEmps
=
YgglMainEmp
.
builder
().
build
().
selectList
(
ygglMainEmpsLambdaQueryWrapper
);
return
ygglMainEmps
;
}
}
}
src/main/java/cn/timer/api/dao/jxgl/JxglAppraisalMapper.java
View file @
c6dff835
package
cn
.
timer
.
api
.
dao
.
jxgl
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
cn.timer.api.bean.jxgl.JxglAppraisal
;
import
cn.timer.api.dto.jxgl.AppraisalDetail
;
import
cn.timer.api.dto.jxgl.AppraisalQuery
;
/**
* 考核
...
...
@@ -12,6 +16,8 @@ import cn.timer.api.bean.jxgl.JxglAppraisal;
@Repository
public
interface
JxglAppraisalMapper
extends
BaseMapper
<
JxglAppraisal
>
{
IPage
<
JxglAppraisal
>
selectListByQuery
(
IPage
<
JxglAppraisal
>
page
,
@Param
(
"param"
)
AppraisalQuery
query
);
AppraisalDetail
selectDetailById
(
Integer
orgCode
,
Integer
id
);
}
src/main/java/cn/timer/api/dao/jxgl/JxglPerformanceAppraisalMapper.java
View file @
c6dff835
package
cn
.
timer
.
api
.
dao
.
jxgl
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
cn.timer.api.bean.jxgl.JxglPerformanceAppraisal
;
import
cn.timer.api.bean.spmk.SpmkApproveSummary
;
import
cn.timer.api.dto.jxgl.PerformanceAppraisalQuery
;
/**
* 绩效考核
...
...
@@ -12,6 +18,8 @@ import cn.timer.api.bean.jxgl.JxglPerformanceAppraisal;
@Repository
public
interface
JxglPerformanceAppraisalMapper
extends
BaseMapper
<
JxglPerformanceAppraisal
>
{
IPage
<
JxglPerformanceAppraisal
>
selectListByQuery
(
IPage
<
SpmkApproveSummary
>
page
,
@Param
(
"param"
)
PerformanceAppraisalQuery
param
);
}
src/main/java/cn/timer/api/dto/jxgl/AppraisalDetail.java
0 → 100644
View file @
c6dff835
package
cn
.
timer
.
api
.
dto
.
jxgl
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
cn.timer.api.bean.jxgl.JxglAppraisalAssessment
;
import
cn.timer.api.bean.jxgl.JxglAppraisalIndicators
;
import
cn.timer.api.bean.jxgl.JxglAppraisalLog
;
import
cn.timer.api.bean.jxgl.JxglProcessNode
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
AppraisalDetail
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
@TableId
(
type
=
IdType
.
AUTO
)
@ApiModelProperty
(
value
=
"编号 编号"
,
example
=
"10"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"绩效考核id 绩效考核id"
,
example
=
"10"
)
private
Integer
performanceAppraisalId
;
@ApiModelProperty
(
value
=
"员工id 员工id"
,
example
=
"10"
)
private
Integer
empNum
;
@ApiModelProperty
(
value
=
"名称"
,
example
=
"名称"
)
private
String
name
;
@ApiModelProperty
(
value
=
"考核说明"
,
example
=
"考核说明"
)
private
String
appraisalExplain
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
"2020-10-10 10:10:10"
)
private
Date
createTime
;
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@ApiModelProperty
(
value
=
"更新时间"
,
example
=
"2020-10-10 10:10:10"
)
private
Date
updateTime
;
@ApiModelProperty
(
value
=
"状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7归档"
,
example
=
"0"
)
private
Integer
sts
;
private
List
<
JxglProcessNode
>
processNodes
;
private
List
<
JxglAppraisalAssessment
>
appraisalAssessments
;
private
List
<
JxglAppraisalLog
>
appraisalLogs
;
private
List
<
JxglAppraisalIndicators
>
appraisalIndicators
;
}
src/main/java/cn/timer/api/dto/jxgl/AppraisalQuery.java
0 → 100644
View file @
c6dff835
package
cn
.
timer
.
api
.
dto
.
jxgl
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
cn.timer.api.config.exception.ValidationMsg
;
import
cn.timer.api.utils.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
AppraisalQuery
extends
Page
{
@NotNull
(
message
=
ValidationMsg
.
NOTNULL
)
@ApiModelProperty
(
value
=
"绩效考核id"
,
example
=
""
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"企业id"
,
example
=
""
)
private
Integer
orgCode
;
@ApiModelProperty
(
value
=
"姓名、手机号"
,
example
=
""
)
private
String
query
;
@Max
(
value
=
4
,
message
=
ValidationMsg
.
MAX
+
" 只能为 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档"
)
@Min
(
value
=
0
,
message
=
ValidationMsg
.
MIN
+
" 只能为 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档"
)
@ApiModelProperty
(
value
=
"状态 0目标填写 1目标确认 2自评 3上级评分 4 结果确认 5考核完成 6终止考核 7绩效归档"
,
example
=
"0"
)
private
Integer
sts
;
@ApiModelProperty
(
value
=
"部门id"
,
example
=
""
)
private
Integer
bmId
;
}
src/main/java/cn/timer/api/dto/jxgl/BeingAppraisalPerson.java
View file @
c6dff835
...
...
@@ -8,6 +8,7 @@ import javax.validation.constraints.NotNull;
import
cn.timer.api.config.exception.ValidationMsg
;
import
cn.timer.api.dto.spmk.User
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
...
...
@@ -25,6 +26,7 @@ public class BeingAppraisalPerson implements Serializable{
private
static
final
long
serialVersionUID
=
1L
;
@NotNull
(
message
=
ValidationMsg
.
NOTNULL
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"10"
)
private
Integer
id
;
/**
...
...
@@ -33,6 +35,7 @@ public class BeingAppraisalPerson implements Serializable{
@NotNull
(
message
=
ValidationMsg
.
NOTNULL
)
@Min
(
value
=
0
,
message
=
ValidationMsg
.
MIN
)
@Max
(
value
=
1
,
message
=
ValidationMsg
.
MAX
)
@ApiModelProperty
(
value
=
"类型 0员工 1部门"
,
example
=
"0"
)
private
Integer
type
;
/**
...
...
@@ -41,6 +44,7 @@ public class BeingAppraisalPerson implements Serializable{
@NotNull
(
message
=
ValidationMsg
.
NOTNULL
)
@Min
(
value
=
0
,
message
=
ValidationMsg
.
MIN
)
@Max
(
value
=
1
,
message
=
ValidationMsg
.
MAX
)
@ApiModelProperty
(
value
=
"状态 0被考核人 1无需考核人"
,
example
=
"0"
)
private
Integer
sts
;
}
src/main/java/cn/timer/api/dto/jxgl/PerformanceAppraisal
Dto
.java
→
src/main/java/cn/timer/api/dto/jxgl/PerformanceAppraisal.java
View file @
c6dff835
...
...
@@ -28,7 +28,7 @@ import lombok.NoArgsConstructor;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
PerformanceAppraisal
Dto
implements
Serializable
{
public
class
PerformanceAppraisal
implements
Serializable
{
/**
*
...
...
@@ -81,7 +81,7 @@ public class PerformanceAppraisalDto implements Serializable{
private
String
appraisalTName
;
@NotNull
(
message
=
ValidationMsg
.
NOTNULL
)
@ApiModelProperty
(
value
=
"考核模板id"
,
example
=
"
考核模板id
"
)
@ApiModelProperty
(
value
=
"考核模板id"
,
example
=
"
1
"
)
private
Integer
appraisalTId
;
@ApiModelProperty
(
value
=
"考核人数 考核人数"
,
example
=
"10"
)
...
...
src/main/java/cn/timer/api/dto/jxgl/PerformanceAppraisalQuery.java
0 → 100644
View file @
c6dff835
package
cn
.
timer
.
api
.
dto
.
jxgl
;
import
javax.validation.constraints.DecimalMax
;
import
javax.validation.constraints.DecimalMin
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotNull
;
import
cn.timer.api.config.exception.ValidationMsg
;
import
cn.timer.api.utils.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
PerformanceAppraisalQuery
extends
Page
{
@ApiModelProperty
(
value
=
"企业id"
,
example
=
""
)
private
Integer
orgCode
;
@ApiModelProperty
(
value
=
"考核名称"
,
example
=
""
)
private
String
query
;
@Max
(
value
=
4
,
message
=
ValidationMsg
.
MAX
+
" 只能为 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核"
)
@Min
(
value
=
0
,
message
=
ValidationMsg
.
MIN
+
" 只能为 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核"
)
@ApiModelProperty
(
value
=
"状态 0目标制定 1绩效评分 2结果确认 3绩效归档 4终止考核"
,
example
=
"0"
)
private
Integer
sts
;
@ApiModelProperty
(
value
=
"开始时间 "
,
example
=
"2000-10-10 10:10:10"
)
private
String
startTime
;
@ApiModelProperty
(
value
=
"结束时间 "
,
example
=
"2020-10-10 10:10:10"
)
private
String
endTime
;
}
src/main/java/cn/timer/api/dto/jxgl/ProcessNode.java
View file @
c6dff835
...
...
@@ -24,7 +24,7 @@ public class ProcessNode implements Serializable {
*/
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"执行人id(员工id)
执行人id(员工id)
"
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"执行人id(员工id)"
,
example
=
"10"
)
private
Integer
executorId
;
@NotNull
(
message
=
ValidationMsg
.
NOTNULL
)
...
...
@@ -46,7 +46,7 @@ public class ProcessNode implements Serializable {
@Min
(
value
=
0
,
message
=
ValidationMsg
.
MIN
)
@Max
(
value
=
100
,
message
=
ValidationMsg
.
MAX
)
@ApiModelProperty
(
value
=
"权重
权重
"
,
example
=
"10"
)
@ApiModelProperty
(
value
=
"权重"
,
example
=
"10"
)
private
Integer
weight
;
}
src/main/java/cn/timer/api/dto/jxgl/ProcessNodeUpdate.java
0 → 100644
View file @
c6dff835
package
cn
.
timer
.
api
.
dto
.
jxgl
;
import
java.io.Serializable
;
import
java.util.Date
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
cn.timer.api.bean.jxgl.JxglProcessNode
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
ProcessNodeUpdate
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"10"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"考核id"
,
example
=
"10"
)
private
Integer
appraisalId
;
@ApiModelProperty
(
value
=
"执行人id(员工id)"
,
example
=
"10"
)
private
Integer
executorId
;
@ApiModelProperty
(
value
=
"执行人名称"
,
example
=
"执行人名称"
)
private
String
executorName
;
}
src/main/java/cn/timer/api/utils/Page.java
View file @
c6dff835
...
...
@@ -7,10 +7,28 @@ import lombok.Data;
*
*/
@Data
public
class
Page
{
//当前页
private
Integer
currentPage
;
//当前页总条数
private
Integer
totalPage
;
public
Integer
getCurrentPage
()
{
return
currentPage
==
null
||
currentPage
<=
0
?
1
:
currentPage
;
}
public
void
setCurrentPage
(
Integer
currentPage
)
{
this
.
currentPage
=
currentPage
;
}
public
Integer
getTotalPage
()
{
return
totalPage
==
null
||
totalPage
<=
0
?
10
:
totalPage
;
}
public
void
setTotalPage
(
Integer
totalPage
)
{
this
.
totalPage
=
totalPage
;
}
}
src/main/java/cn/timer/api/utils/StreamUtils.java
0 → 100644
View file @
c6dff835
package
cn
.
timer
.
api
.
utils
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.function.Function
;
import
java.util.function.Predicate
;
public
class
StreamUtils
{
public
static
<
T
>
Predicate
<
T
>
distinctByKey
(
Function
<?
super
T
,
?>
keyExtractor
)
{
Map
<
Object
,
Boolean
>
seen
=
new
ConcurrentHashMap
<>();
return
t
->
seen
.
putIfAbsent
(
keyExtractor
.
apply
(
t
),
Boolean
.
TRUE
)
==
null
;
}
}
src/main/java/cn/timer/api/utils/router/RouterUtils.java
View file @
c6dff835
...
...
@@ -148,8 +148,6 @@ public class RouterUtils {
List
<
YgglMainEmp
>
listYgglMainEmp
=
selectOtherlistent
(
Integer
.
parseInt
(
obj
.
get
(
"orgCode"
,
FromData
.
class
).
getValue
().
trim
()),
Integer
.
valueOf
(
listRelations
.
get
(
i
).
getDepartmentId
().
trim
()));
System
.
out
.
println
(
listYgglMainEmp
);
if
(
listYgglMainEmp
!=
null
&&
listYgglMainEmp
.
size
()
>
0
)
{
List
<
User
>
listUsers
=
new
ArrayList
<
User
>();
for
(
YgglMainEmp
emp
:
listYgglMainEmp
)
{
...
...
src/main/resources/mapping/jxgl/JxglAppraisalMapper.xml
View file @
c6dff835
...
...
@@ -14,6 +14,66 @@
<result
column=
"sts"
property=
"sts"
/>
</resultMap>
<resultMap
id=
"BaseResultMap_All"
type=
"cn.timer.api.bean.jxgl.JxglAppraisal"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"performance_appraisal_id"
property=
"performanceAppraisalId"
/>
<result
column=
"emp_num"
property=
"empNum"
/>
<result
column=
"name"
property=
"name"
/>
<result
column=
"appraisal_explain"
property=
"appraisalExplain"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"sts"
property=
"sts"
/>
<result
column=
"user_name"
property=
"userName"
/>
<result
column=
"phone"
property=
"phone"
/>
<result
column=
"bm_name"
property=
"bmName"
/>
<result
column=
"executor_name"
property=
"executorName"
/>
<result
column=
"comprehensive_score"
property=
"comprehensiveScore"
/>
<result
column=
"level"
property=
"level"
/>
</resultMap>
<resultMap
id=
"BaseResultMap_e"
type=
"cn.timer.api.bean.jxgl.JxglAppraisalIndicators"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"appraisal_id"
property=
"appraisalId"
/>
<result
column=
"title"
property=
"title"
/>
<result
column=
"weight"
property=
"weight"
/>
<result
column=
"is_edit"
property=
"isEdit"
/>
<result
column=
"is_set_weight"
property=
"isSetWeight"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"type"
property=
"type"
/>
<collection
column=
"JxglAppraisalIndicatorsAssessment_id"
property=
"appraisalIndicatorsAssessments"
ofType=
"cn.timer.api.bean.jxgl.JxglAppraisalIndicatorsAssessment"
resultMap=
"cn.timer.api.dao.jxgl.JxglAppraisalIndicatorsAssessmentMapper.BaseResultMap"
columnPrefix=
"JxglAppraisalIndicatorsAssessment_"
>
</collection>
<collection
column=
"JxglAppraisalItem_id"
property=
"appraisalItems"
ofType=
"cn.timer.api.bean.jxgl.JxglAppraisalItem"
resultMap=
"cn.timer.api.dao.jxgl.JxglAppraisalItemMapper.BaseResultMap"
columnPrefix=
"JxglAppraisalItem_"
>
</collection>
</resultMap>
<resultMap
id=
"BaseResultMap_Detail"
type=
"cn.timer.api.dto.jxgl.AppraisalDetail"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"performance_appraisal_id"
property=
"performanceAppraisalId"
/>
<result
column=
"emp_num"
property=
"empNum"
/>
<result
column=
"name"
property=
"name"
/>
<result
column=
"appraisal_explain"
property=
"appraisalExplain"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"sts"
property=
"sts"
/>
<collection
column=
"JxglProcessNode_id"
property=
"processNodes"
ofType=
"cn.timer.api.bean.jxgl.JxglProcessNode"
resultMap=
"cn.timer.api.dao.jxgl.JxglProcessNodeMapper.BaseResultMap"
columnPrefix=
"JxglProcessNode_"
>
</collection>
<collection
column=
"JxglAppraisalAssessment_id"
property=
"appraisalAssessments"
ofType=
"cn.timer.api.bean.jxgl.JxglAppraisalAssessment"
resultMap=
"cn.timer.api.dao.jxgl.JxglAppraisalAssessmentMapper.BaseResultMap"
columnPrefix=
"JxglAppraisalAssessment_"
>
</collection>
<collection
column=
"JxglAppraisalLog_id"
property=
"appraisalLogs"
ofType=
"cn.timer.api.bean.jxgl.JxglAppraisalLog"
resultMap=
"cn.timer.api.dao.jxgl.JxglAppraisalLogMapper.BaseResultMap"
columnPrefix=
"JxglAppraisalLog_"
>
</collection>
<collection
column=
"e_id"
property=
"appraisalIndicators"
ofType=
"cn.timer.api.bean.jxgl.JxglAppraisalIndicators"
resultMap=
"cn.timer.api.dao.jxgl.JxglAppraisalMapper.BaseResultMap_e"
columnPrefix=
"e_"
>
</collection>
</resultMap>
<sql
id=
"Base_Column_List"
>
id,
performance_appraisal_id,
...
...
@@ -25,6 +85,85 @@
sts
</sql>
<sql
id=
"Base_Column_List_a"
>
a.id,
a.performance_appraisal_id,
a.emp_num,
a.name,
a.appraisal_explain,
a.create_time,
a.update_time,
a.sts
</sql>
<sql
id=
"Base_Column_List_Alias_b"
>
b.id JxglProcessNode_id,
b.appraisal_id JxglProcessNode_appraisal_id,
b.executor_id JxglProcessNode_executor_id,
b.executor_name JxglProcessNode_executor_name,
b.execute_type JxglProcessNode_execute_type,
b.process_type JxglProcessNode_process_type,
b.name JxglProcessNode_name,
b.leader_tier JxglProcessNode_leader_tier,
b.weight JxglProcessNode_weight,
b.sts JxglProcessNode_sts,
b.update_time JxglProcessNode_update_time
</sql>
<sql
id=
"Base_Column_List_Alias_c"
>
c.id JxglAppraisalAssessment_id,
c.appraisal_id JxglAppraisalAssessment_appraisal_id,
c.assessor_id JxglAppraisalAssessment_assessor_id,
c.assessor_name JxglAppraisalAssessment_assessor_name,
c.comprehensive_score JxglAppraisalAssessment_comprehensive_score,
c.remarks JxglAppraisalAssessment_remarks,
c.type JxglAppraisalAssessment_type,
c.create_time JxglAppraisalAssessment_create_time,
c.level JxglAppraisalAssessment_level
</sql>
<sql
id=
"Base_Column_List_Alias_d"
>
d.id JxglAppraisalLog_id,
d.appraisal_id JxglAppraisalLog_appraisal_id,
d.executor_id JxglAppraisalLog_executor_id,
d.executor_name JxglAppraisalLog_executor_name,
d.title JxglAppraisalLog_title,
d.remarks JxglAppraisalLog_remarks,
d.create_time JxglAppraisalLog_create_time,
d.type JxglAppraisalLog_type
</sql>
<sql
id=
"Base_Column_List_Alias_e"
>
e.id e_id,
e.appraisal_id e_id,
e.title e_title,
e.weight e_weight,
e.is_edit e_is_edit,
e.is_set_weight e_is_set_weight,
e.create_time e_create_time,
e.update_time e_update_time,
e.type e_type
</sql>
<sql
id=
"Base_Column_List_Alias_f"
>
f.id e_JxglAppraisalIndicatorsAssessment_id,
f.appraisal_indicators_id e_JxglAppraisalIndicatorsAssessment_appraisal_indicators_id,
f.assessor_id e_JxglAppraisalIndicatorsAssessment_assessor_id,
f.assessor_name e_JxglAppraisalIndicatorsAssessment_assessor_name,
f.score e_JxglAppraisalIndicatorsAssessment_score,
f.remarks e_JxglAppraisalIndicatorsAssessment_remarks,
f.type e_JxglAppraisalIndicatorsAssessment_type,
f.create_time e_JxglAppraisalIndicatorsAssessment_create_time
</sql>
<sql
id=
"Base_Column_List_Alias_g"
>
g.id e_JxglAppraisalItem_id,
g.appraisal_indicators_id e_JxglAppraisalItem_appraisal_indicators_id,
g.title e_JxglAppraisalItem_title,
g.content e_JxglAppraisalItem_content,
g.ranks e_JxglAppraisalItem_ranks
</sql>
<sql
id=
"Base_Column_List_Alias"
>
id JxglAppraisal_id,
performance_appraisal_id JxglAppraisal_performance_appraisal_id,
...
...
@@ -36,6 +175,52 @@
sts JxglAppraisal_sts
</sql>
<select
id=
"selectListByQuery"
resultMap=
"BaseResultMap_All"
>
SELECT
<include
refid=
"Base_Column_List_a"
/>
,
b.name user_name, b.phone,
(SELECT name FROM zzgl_bmgw_m WHERE id = (SELECT up_id FROM zzgl_bmgw_m WHERE id = b.bmgw_id limit 1) limit 1) as bm_name,
(SELECT name FROM yggl_main_emp WHERE emp_num = c.executor_id AND org_code = #{param.orgCode}) as executor_name,
d.comprehensive_score ,d.level
FROM jxgl_appraisal a
LEFT JOIN yggl_main_emp b ON a.emp_num = b.emp_num AND b.org_code = #{param.orgCode}
LEFT JOIN jxgl_process_node c ON a.id = c.appraisal_id AND c.sts = 1
LEFT JOIN jxgl_appraisal_assessment d ON a.id = d.appraisal_id AND d.type = 1
<!-- 缺部门 搜索 -->
WHERE a.performance_appraisal_id = #{param.id}
<if
test=
"param.query != null and param.query != ''"
>
and (
a.name like CONCAT('%',#{param.query},'%') or
a.phone like CONCAT('%',#{param.query},'%')
)
</if>
<if
test=
"param.sts != null"
>
and a.sts = #{param.sts}
</if>
ORDER BY a.id DESC
</select>
<select
id=
"selectDetailById"
resultMap=
"BaseResultMap_Detail"
>
SELECT
<include
refid=
"Base_Column_List_a"
/>
,
<include
refid=
"Base_Column_List_Alias_b"
/>
,
<include
refid=
"Base_Column_List_Alias_c"
/>
,
<include
refid=
"Base_Column_List_Alias_d"
/>
,
<include
refid=
"Base_Column_List_Alias_e"
/>
,
<include
refid=
"Base_Column_List_Alias_f"
/>
,
<include
refid=
"Base_Column_List_Alias_g"
/>
FROM
jxgl_appraisal a
LEFT JOIN jxgl_process_node b ON a.id = b.appraisal_id
LEFT JOIN jxgl_appraisal_assessment c ON a.id = c.appraisal_id
LEFT JOIN jxgl_appraisal_log d ON a.id = d.appraisal_id
LEFT JOIN jxgl_appraisal_indicators e ON a.id = e.appraisal_id
LEFT JOIN jxgl_appraisal_indicators_assessment f ON e.id = f.appraisal_indicators_id
LEFT JOIN jxgl_appraisal_item g ON e.id = g.appraisal_indicators_id
WHERE a.id = #{id}
</select>
<!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglAppraisal">
...
...
src/main/resources/mapping/jxgl/JxglPerformanceAppraisalMapper.xml
View file @
c6dff835
...
...
@@ -17,6 +17,31 @@
<result
column=
"appraisal_person_num"
property=
"appraisalPersonNum"
/>
<result
column=
"process_node"
property=
"processNode"
/>
<result
column=
"being_appraisal_person"
property=
"beingAppraisalPerson"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
</resultMap>
<resultMap
id=
"BaseResultMap_ALl"
type=
"cn.timer.api.bean.jxgl.JxglPerformanceAppraisal"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"org_code"
property=
"orgCode"
/>
<result
column=
"name"
property=
"name"
/>
<result
column=
"period"
property=
"period"
/>
<result
column=
"appraisal_start_time"
property=
"appraisalStartTime"
/>
<result
column=
"appraisal_end_time"
property=
"appraisalEndTime"
/>
<result
column=
"is_visible"
property=
"isVisible"
/>
<result
column=
"sts"
property=
"sts"
/>
<result
column=
"scope"
property=
"scope"
/>
<result
column=
"appraisal_t_name"
property=
"appraisalTName"
/>
<result
column=
"appraisal_person_num"
property=
"appraisalPersonNum"
/>
<result
column=
"process_node"
property=
"processNode"
/>
<result
column=
"being_appraisal_person"
property=
"beingAppraisalPerson"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"target_seting"
property=
"targetSeting"
/>
<result
column=
"performance_score"
property=
"performanceScore"
/>
<result
column=
"result_verification"
property=
"resultVerification"
/>
<result
column=
"performance_archive"
property=
"performanceArchive"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
...
...
@@ -32,7 +57,27 @@
appraisal_t_name,
appraisal_person_num,
process_node,
being_appraisal_person
being_appraisal_person,
create_time,
update_time
</sql>
<sql
id=
"Base_Column_List_a"
>
a.id,
a.org_code,
a.name,
a.period,
a.appraisal_start_time,
a.appraisal_end_time,
a.is_visible,
a.sts,
a.scope,
a.appraisal_t_name,
a.appraisal_person_num,
<!-- a.process_node,
a.being_appraisal_person, -->
a.create_time,
a.update_time
</sql>
<sql
id=
"Base_Column_List_Alias"
>
...
...
@@ -48,9 +93,40 @@
appraisal_t_name JxglPerformanceAppraisal_appraisal_t_name,
appraisal_person_num JxglPerformanceAppraisal_appraisal_person_num,
process_node JxglPerformanceAppraisal_process_node,
being_appraisal_person JxglPerformanceAppraisal_being_appraisal_person
being_appraisal_person JxglPerformanceAppraisal_being_appraisal_person,
create_time JxglPerformanceAppraisal_create_time,
update_time JxglPerformanceAppraisal_update_time
</sql>
<select
id=
"selectListByQuery"
resultMap=
"BaseResultMap_ALl"
>
SELECT
<include
refid=
"Base_Column_List_a"
/>
,
SUM((CASE WHEN b.sts in (0,1) THEN 1 ELSE 0 END)) AS target_seting,
SUM((CASE WHEN b.sts in (2,3) THEN 1 ELSE 0 END)) AS performance_score,
SUM((CASE WHEN b.sts in (4,5) THEN 1 ELSE 0 END)) AS result_verification,
SUM((CASE WHEN b.sts = 7 THEN 1 ELSE 0 END)) AS performance_archive
FROM jxgl_performance_appraisal a
LEFT JOIN jxgl_appraisal b ON a.id = b.performance_appraisal_id
WHERE a.org_code = #{param.orgCode}
<if
test=
"param.query != null and param.query != ''"
>
and (
a.name like CONCAT('%',#{param.query},'%')
)
</if>
<if
test=
"param.sts != null"
>
and a.sts = #{param.sts}
</if>
<if
test=
"param.startTime != null and param.startTime != ''"
>
and a.create_time
<![CDATA[ >= ]]>
#{param.startTime}
</if>
<if
test=
"param.endTime != null and param.endTime != ''"
>
and a.create_time
<![CDATA[ <= ]]>
#{param.endTime}
</if>
GROUP BY a.id
ORDER BY a.id DESC
</select>
<!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.jxgl.JxglPerformanceAppraisal">
...
...
@@ -90,7 +166,13 @@
process_node,
</if>
<if test ='null != beingAppraisalPerson'>
being_appraisal_person
being_appraisal_person,
</if>
<if test ='null != createTime'>
create_time,
</if>
<if test ='null != updateTime'>
update_time
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
...
...
@@ -128,7 +210,13 @@
#{processNode},
</if>
<if test ='null != beingAppraisalPerson'>
#{beingAppraisalPerson}
#{beingAppraisalPerson},
</if>
<if test ='null != createTime'>
#{createTime},
</if>
<if test ='null != updateTime'>
#{updateTime}
</if>
</trim>
</insert>
...
...
@@ -152,7 +240,9 @@
<if test ='null != appraisalTName'>appraisal_t_name = #{appraisalTName},</if>
<if test ='null != appraisalPersonNum'>appraisal_person_num = #{appraisalPersonNum},</if>
<if test ='null != processNode'>process_node = #{processNode},</if>
<if test ='null != beingAppraisalPerson'>being_appraisal_person = #{beingAppraisalPerson}</if>
<if test ='null != beingAppraisalPerson'>being_appraisal_person = #{beingAppraisalPerson},</if>
<if test ='null != createTime'>create_time = #{createTime},</if>
<if test ='null != updateTime'>update_time = #{updateTime}</if>
</set>
WHERE id = #{id}
</update>
...
...
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