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
a6576662
Commit
a6576662
authored
Jul 16, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加用户类型修改
parent
29b3ce20
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
6468 additions
and
2355 deletions
+6468
-2355
attendance-performance-manager-ui/admin/src/router.js
attendance-performance-manager-ui/admin/src/router.js
+2
-1
attendance-performance-manager-ui/admin/src/views/staff/onboard/dialogshow.vue
...e-manager-ui/admin/src/views/staff/onboard/dialogshow.vue
+142
-0
attendance-performance-manager-ui/admin/src/views/staff/onboard/list.vue
...ormance-manager-ui/admin/src/views/staff/onboard/list.vue
+74
-0
attendance-performance-manager-ui/admin/src/views/staff/onboard/view.vue
...ormance-manager-ui/admin/src/views/staff/onboard/view.vue
+111
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/OnBoardStatusEnum.java
...n/java/com/mortals/xhx/common/code/OnBoardStatusEnum.java
+66
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/PerformAttendRecordEntity.java
...s/xhx/module/perform/model/PerformAttendRecordEntity.java
+84
-84
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/PerformAttendRecordQuery.java
...ls/xhx/module/perform/model/PerformAttendRecordQuery.java
+1154
-1154
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/StaffOnboardDao.java
...ava/com/mortals/xhx/module/staff/dao/StaffOnboardDao.java
+17
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/ibatis/StaffOnboardDaoImpl.java
...tals/xhx/module/staff/dao/ibatis/StaffOnboardDaoImpl.java
+21
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/model/StaffOnboardEntity.java
...om/mortals/xhx/module/staff/model/StaffOnboardEntity.java
+140
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/model/StaffOnboardQuery.java
...com/mortals/xhx/module/staff/model/StaffOnboardQuery.java
+2157
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/model/vo/StaffOnboardVo.java
...com/mortals/xhx/module/staff/model/vo/StaffOnboardVo.java
+19
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/StaffOnboardService.java
...mortals/xhx/module/staff/service/StaffOnboardService.java
+16
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffOnboardServiceImpl.java
...hx/module/staff/service/impl/StaffOnboardServiceImpl.java
+21
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffOnboardController.java
.../mortals/xhx/module/staff/web/StaffOnboardController.java
+53
-0
attendance-performance-manager/src/main/resources/sqlmap/module/perform/PerformAttendRecordMapper.xml
...urces/sqlmap/module/perform/PerformAttendRecordMapper.xml
+1116
-1116
attendance-performance-manager/src/main/resources/sqlmap/module/staff/StaffOnboardMapper.xml
...main/resources/sqlmap/module/staff/StaffOnboardMapper.xml
+1173
-0
attendance-performance-manager/src/test/java/com/mortals/httpclient/staff/StaffOnboardController.http
.../com/mortals/httpclient/staff/StaffOnboardController.http
+71
-0
db/add.sql
db/add.sql
+31
-0
doc/考勤绩效管理系统.docx
doc/考勤绩效管理系统.docx
+0
-0
No files found.
attendance-performance-manager-ui/admin/src/router.js
View file @
a6576662
...
...
@@ -49,6 +49,7 @@ const router = new Router({
...
restBuilder
(
"
job
"
,
"
job
"
),
// 职位信息
...
restBuilder
(
"
staff/adjust/log
"
,
"
staff/adjust/log
"
),
// 员工调岗信息
...
restBuilder
(
"
staff/onboard
"
,
"
staff/onboard
"
),
// 员工入职信息
...
restBuilder
(
"
staff/regular
"
,
"
staff/regular
"
),
// 员工转正信息
...
restBuilder
(
"
staff/leave
"
,
"
staff/leave
"
),
// 员工离职信息
...
restBuilder
(
"
staff/contract
"
,
"
staff/contract
"
),
// 员工合同信息
...
...
@@ -127,7 +128,7 @@ const router = new Router({
...
restBuilder
(
"
feedback
"
,
"
feedback
"
),
//反馈信息
...
restBuilder
(
"
feedback/addQuestion
"
,
"
feedback/addQuestion
"
),
//新增反馈
...
restBuilder
(
"
feedback/questionnaire
"
,
"
feedback/questionnaire
"
),
//问卷情况
...
restBuilder
(
"
feedback/question
"
,
"
feedback/question
"
),
//反馈问题
...
restBuilder
(
"
feedback/option
"
,
"
feedback/option
"
),
//反馈选项
...
restBuilder
(
"
feedback/answer
"
,
"
feedback/answer
"
),
//回答问题
...
...
attendance-performance-manager-ui/admin/src/views/staff/onboard/dialogshow.vue
0 → 100644
View file @
a6576662
<
template
>
<!-- 弹出框表单 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"90%"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<Field
label=
"员工ID"
prop=
"staffId"
v-model=
"form.staffId"
placeholder=
"请输入员工ID"
/>
<Field
label=
"员工姓名"
prop=
"staffName"
v-model=
"form.staffName"
placeholder=
"请输入员工姓名"
/>
<Field
label=
"性别"
prop=
"gender"
v-model=
"form.gender"
type=
"select"
:enumData=
"dict.gender"
placeholder=
"请选择性别"
/>
<Field
label=
"出生日期"
prop=
"birthday"
v-model=
"form.birthday"
type=
"date"
/>
<Field
label=
"照片"
prop=
"photoPath"
v-model=
"form.photoPath"
type=
"textarea"
placeholder=
"请输入照片"
/>
<Field
label=
"联系电话"
prop=
"phoneNumber"
v-model=
"form.phoneNumber"
placeholder=
"请输入联系电话"
/>
<Field
label=
"身份证号码"
prop=
"idCard"
v-model=
"form.idCard"
placeholder=
"请输入身份证号码"
/>
<Field
label=
"工号"
prop=
"workNum"
v-model=
"form.workNum"
placeholder=
"请输入工号"
/>
<Field
label=
"入职登记表"
><fileUpload
v-model=
"form.filePath"
prePath=
"/file/fileupload"
/></Field>
<Field
label=
"政治面貌 "
prop=
"politicalstatus"
v-model=
"form.politicalstatus"
type=
"select"
:enumData=
"dict.politicalstatus"
placeholder=
"请选择政治面貌 "
/>
<Field
label=
"所属部门"
prop=
"deptId"
v-model=
"form.deptId"
placeholder=
"请输入所属部门"
/>
<Field
label=
"所属部门名称"
prop=
"deptName"
v-model=
"form.deptName"
placeholder=
"请输入所属部门名称"
/>
<Field
label=
"职位ID"
prop=
"jobId"
v-model=
"form.jobId"
placeholder=
"请输入职位ID"
/>
<Field
label=
"职位名称"
prop=
"jobName"
v-model=
"form.jobName"
placeholder=
"请输入职位名称"
/>
<Field
label=
"员工类型"
prop=
"staffType"
v-model=
"form.staffType"
type=
"select"
:enumData=
"dict.staffType"
placeholder=
"请选择员工类型"
/>
<Field
label=
"员工状态"
prop=
"onBoardStatus"
v-model=
"form.onBoardStatus"
type=
"select"
:enumData=
"dict.onBoardStatus"
placeholder=
"请选择员工状态"
/>
<Field
label=
"入职时间"
prop=
"entryDate"
v-model=
"form.entryDate"
type=
"date"
/>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
v-if=
"pageInfo.type !== 'view'"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
form
from
"
@/assets/mixins/formdialog
"
;
import
dialogShow
from
"
./dialogshow
"
;
import
FileUpload
from
'
@/components/FileUpload
'
;
export
default
{
mixins
:
[
form
],
components
:
{
dialogShow
,
FileUpload
,
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 弹出层标题
title
:
"
员工入职信息
"
,
// 是否显示弹出层
open
:
false
,
toString
:[
"
gender
"
,
"
politicalstatus
"
,
"
staffType
"
,
"
onBoardStatus
"
,
],
// 表单校验
rules
:
{
staffName
:
[
{
required
:
true
,
message
:
"
请输入员工姓名
"
,
trigger
:
"
blur
"
},
{
max
:
64
,
message
:
"
最多只能录入64个字符
"
,
trigger
:
"
blur
"
,},
],
createTime
:
[
{
required
:
true
,
message
:
"
请选择创建时间
"
},
],
}
};
},
methods
:
{
/** 编辑 */
edit
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
staff/onboard/edit
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
edit
"
this
.
title
=
"
修改员工入职信息
"
;
},
/** 新增 */
add
(
row
)
{
this
.
reset
()
this
.
urls
.
currUrl
=
"
staff/onboard/add
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
add
"
this
.
title
=
"
新增员工入职信息
"
;
},
/** 查看*/
view
(
row
)
{
this
.
reset
()
this
.
query
=
{
id
:
row
.
id
};
this
.
urls
.
currUrl
=
"
staff/onboard/view
"
;
this
.
getData
();
this
.
pageInfo
.
type
=
"
view
"
this
.
title
=
"
员工入职信息详细
"
;
},
/**取消按钮 */
cancel
()
{
this
.
open
=
false
;
},
/**获取数据后弹框 */
afterRender
(
data
)
{
this
.
open
=
true
;
},
afterSubmit
(
data
)
{
this
.
open
=
false
;
this
.
$emit
(
"
ok
"
);
},
// 表单重置
reset
()
{
this
.
form
=
{
staffId
:
null
,
staffName
:
""
,
gender
:
1
,
birthday
:
null
,
photoPath
:
""
,
phoneNumber
:
""
,
idCard
:
""
,
workNum
:
""
,
filePath
:
""
,
politicalstatus
:
1
,
deptId
:
null
,
deptName
:
""
,
jobId
:
null
,
jobName
:
""
,
staffType
:
1
,
onBoardStatus
:
1
,
entryDate
:
null
,
};
this
.
resetForm
(
"
form
"
);
},
resetForm
(
refName
)
{
if
(
this
.
$refs
[
refName
])
{
this
.
$refs
[
refName
].
resetFields
();
}
},
},
};
</
script
>
attendance-performance-manager-ui/admin/src/views/staff/onboard/list.vue
0 → 100644
View file @
a6576662
<
template
>
<div
class=
"page"
>
<LayoutTable
:data=
"tableData"
:config=
"tableConfig"
>
</LayoutTable>
<dialog-show
ref=
"dialogform"
@
ok=
"getData"
/>
</div>
</
template
>
<
script
>
/** 表单弹出框模式需引入 */
import
dialogShow
from
"
./dialogshow
"
;
import
table
from
"
@/assets/mixins/table
"
;
export
default
{
name
:
"
StaffOnboardList
"
,
components
:
{
dialogShow
},
mixins
:
[
table
],
created
()
{
},
methods
:
{
/** 重写新增方法 */
toAdd
(
row
)
{
this
.
$refs
.
dialogform
.
add
(
row
);
},
/** 重写编辑方法 */
toEdit
(
row
)
{
this
.
$refs
.
dialogform
.
edit
(
row
);
},
/** 重写查看方法 */
toView
(
row
)
{
this
.
$refs
.
dialogform
.
view
(
row
);
},
},
data
()
{
return
{
config
:
{
search
:
[
],
columns
:
[
{
type
:
"
selection
"
,
width
:
60
},
{
type
:
"
index
"
,
label
:
"
序号
"
,
width
:
50
},
{
label
:
"
员工姓名
"
,
prop
:
"
staffName
"
},
{
label
:
"
性别
"
,
prop
:
"
gender
"
,
formatter
:
this
.
formatter
},
{
label
:
"
政治面貌
"
,
prop
:
"
politicalstatus
"
,
formatter
:
this
.
formatter
},
{
label
:
"
员工类型
"
,
prop
:
"
staffType
"
,
formatter
:
this
.
formatter
},
{
label
:
"
员工状态
"
,
prop
:
"
onBoardStatus
"
,
formatter
:
this
.
formatter
},
{
label
:
"
入职时间
"
,
prop
:
"
entryDate
"
,
formatter
:
this
.
formatterDate
},
{
label
:
"
创建用户
"
,
prop
:
"
createUserId
"
,
formatter
:
this
.
formatter
},
{
label
:
"
操作
"
,
width
:
240
,
formatter
:
row
=>
{
return
(
<
table
-
buttons
noAdd
row
=
{
row
}
onEdit
=
{
this
.
toEdit
}
onView
=
{
this
.
toView
}
onDel
=
{
this
.
toDel
}
/
>
);
}
}
]
}
};
}
};
</
script
>
\ No newline at end of file
attendance-performance-manager-ui/admin/src/views/staff/onboard/view.vue
0 → 100644
View file @
a6576662
<
template
>
<layout-view>
<el-descriptions
:title=
"title"
:column=
"column"
:size=
"size"
:colon=
"false"
border
>
<template
slot=
"title"
>
<i
class=
"el-icon-tickets"
></i>
基本详细信息
</
template
>
<
template
slot=
"extra"
>
<el-button
type=
"primary"
@
click=
"$router.go(-1)"
size=
"small"
>
返回
</el-button>
</
template
>
<el-descriptions-item
label=
"员工ID"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.staffId}}
</el-descriptions-item>
<el-descriptions-item
label=
"员工姓名"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.staffName}}
</el-descriptions-item>
<el-descriptions-item
label=
"性别"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{ util_formatters("gender", form.gender) }}
</el-descriptions-item>
<el-descriptions-item
label=
"出生日期"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item
label=
"照片"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item
label=
"联系电话"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item
label=
"身份证号码"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item
label=
"工号"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item
label=
"入职登记表"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
<fileUpload
v-model=
"form.filePath"
prePath=
"/file/fileupload"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"政治面貌 "
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item
label=
"所属部门"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.deptId}}
</el-descriptions-item>
<el-descriptions-item
label=
"所属部门名称"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.deptName}}
</el-descriptions-item>
<el-descriptions-item
label=
"职位ID"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item
label=
"职位名称"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item
label=
"员工类型"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{ util_formatters("staffType", form.staffType) }}
</el-descriptions-item>
<el-descriptions-item
label=
"员工状态"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{ util_formatters("onBoardStatus", form.onBoardStatus) }}
</el-descriptions-item>
<el-descriptions-item
label=
"入职时间"
label-class-name=
"labelClass"
content-class-name=
"contentClass"
>
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<
script
>
import
view
from
"
@/assets/mixins/view
"
;
import
FileUpload
from
'
@/components/FileUpload
'
;
export
default
{
mixins
:
[
view
],
components
:
{
FileUpload
,
},
methods
:
{
},
data
()
{
return
{
size
:
"
small
"
,
column
:
2
,
toString
:[
"
gender
"
,
"
politicalstatus
"
,
"
staffType
"
,
"
onBoardStatus
"
,
],
toArrays
:
[
],
toDate
:
[
]
}
}
}
</
script
>
<
style
lang=
"less"
>
.labelClass{
width: 200px;
}
.el-descriptions__body{
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
width: 600px;
}
</
style
>
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/OnBoardStatusEnum.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.common.code
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
/**
* 员工状态(1.待入职,2.试用中,3.超期)枚举类
*
* @author zxfei
*/
public
enum
OnBoardStatusEnum
{
待入职
(
1
,
"待入职"
),
试用中
(
2
,
"试用中"
),
超期
(
3
,
"超期"
);
private
Integer
value
;
private
String
desc
;
OnBoardStatusEnum
(
Integer
value
,
String
desc
)
{
this
.
value
=
value
;
this
.
desc
=
desc
;
}
public
Integer
getValue
()
{
return
this
.
value
;
}
public
String
getDesc
()
{
return
this
.
desc
;
}
public
static
OnBoardStatusEnum
getByValue
(
Integer
value
)
{
for
(
OnBoardStatusEnum
onBoardStatusEnum
:
OnBoardStatusEnum
.
values
())
{
if
(
onBoardStatusEnum
.
getValue
()
==
value
)
{
return
onBoardStatusEnum
;
}
}
return
null
;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public
static
Map
<
String
,
String
>
getEnumMap
(
Integer
...
eItem
)
{
Map
<
String
,
String
>
resultMap
=
new
LinkedHashMap
<>();
for
(
OnBoardStatusEnum
item
:
OnBoardStatusEnum
.
values
())
{
try
{
boolean
hasE
=
false
;
for
(
Integer
e
:
eItem
)
{
if
(
item
.
getValue
()
==
e
)
{
hasE
=
true
;
break
;
}
}
if
(!
hasE
)
{
resultMap
.
put
(
item
.
getValue
()
+
""
,
item
.
getDesc
());
}
}
catch
(
Exception
ex
)
{
}
}
return
resultMap
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/PerformAttendRecordEntity.java
View file @
a6576662
...
...
@@ -9,121 +9,121 @@ import com.mortals.framework.model.BaseEntityLong;
import
com.mortals.xhx.module.perform.model.vo.PerformAttendRecordVo
;
import
lombok.Data
;
/**
* 考勤绩效记录信息实体对象
*
* @author zxfei
* @date 2023-07-10
*/
* 考勤绩效记录信息实体对象
*
* @author zxfei
* @date 2023-07-16
*/
@Data
public
class
PerformAttendRecordEntity
extends
PerformAttendRecordVo
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 员工ID
*/
* 员工ID
*/
private
Long
staffId
;
/**
* 员工姓名
*/
* 员工姓名
*/
private
String
staffName
;
/**
* 工号
*/
* 工号
*/
private
String
workNum
;
/**
* 所属部门
*/
* 所属部门
*/
private
Long
deptId
;
/**
* 所属部门名称
*/
* 所属部门名称
*/
private
String
deptName
;
/**
* 所属考勤组ID
*/
* 所属考勤组ID
*/
private
Long
attendanceGroupId
;
/**
* 所属考勤组名称
*/
* 所属考勤组名称
*/
private
String
attendanceGroupName
;
/**
* 考勤时间
*/
* 考勤时间
*/
private
Date
attendanceDate
;
/**
* 绩效规则id
*/
* 绩效规则id
*/
private
Long
ruleId
;
/**
* 规则名称
*/
private
String
ruleNme
;
/**
* 异常时间
*/
* 异常时间
*/
private
Date
errorTime
;
/**
* 上下班时间
*/
* 上下班时间
*/
private
String
goOffTimeStr
;
/**
* 实际打卡时间
*/
* 实际打卡时间
*/
private
Date
actualAttendTime
;
/**
* 异常处理结果
*/
* 异常处理结果
*/
private
String
errorResult
;
/**
* 扣分方式(1.系统自动,2.人工添加)
*/
* 扣分方式(1.系统自动,2.人工添加)
*/
private
Integer
subMethod
;
/**
* 扣分人员
*/
* 扣分人员
*/
@Excel
(
name
=
"扣分人员"
)
private
String
deductPerson
;
/**
* 扣分时间
*/
* 扣分时间
*/
private
Date
deductTime
;
/**
* 增减类型(1.增加,2.扣除)
*/
* 增减类型(1.增加,2.扣除)
*/
private
Integer
subAddType
;
/**
* 扣分或增加分值
*/
* 扣分或增加分值
*/
private
BigDecimal
score
;
/**
* 处理状态(1.未核查,2.已核查)
*/
* 处理状态(1.未核查,2.已核查)
*/
private
Integer
processStatus
;
/**
* 备注
*/
* 备注
*/
private
String
remark
;
/**
* 附件名称,多个逗号分割
*/
* 附件名称,多个逗号分割
*/
@Excel
(
name
=
"附件名称,多个逗号分割"
)
private
String
fileNames
;
/**
* 附件下载地址,多个逗号分割
*/
* 附件下载地址,多个逗号分割
*/
@Excel
(
name
=
"附件下载地址,多个逗号分割"
)
private
String
filePaths
;
/**
* 绩效规则分类id
*/
* 绩效规则分类id
*/
private
Long
categoryId
;
/**
* 规则名称
*/
* 规则名称
*/
private
String
categoryName
;
/**
* 规则名称
*/
private
String
ruleName
;
@Override
public
int
hashCode
()
{
return
this
.
getId
().
hashCode
();
return
this
.
getId
().
hashCode
();
}
@Override
public
boolean
equals
(
Object
obj
)
{
...
...
@@ -131,7 +131,7 @@ public class PerformAttendRecordEntity extends PerformAttendRecordVo {
if
(
obj
instanceof
PerformAttendRecordEntity
)
{
PerformAttendRecordEntity
tmp
=
(
PerformAttendRecordEntity
)
obj
;
if
(
this
.
getId
()
==
tmp
.
getId
())
{
return
true
;
return
true
;
}
}
return
false
;
...
...
@@ -139,54 +139,54 @@ public class PerformAttendRecordEntity extends PerformAttendRecordVo {
public
void
initAttrValue
(){
this
.
staffId
=
-
1L
;
this
.
staffId
=
-
1L
;
this
.
staffName
=
""
;
this
.
staffName
=
""
;
this
.
workNum
=
""
;
this
.
workNum
=
""
;
this
.
deptId
=
-
1L
;
this
.
deptId
=
-
1L
;
this
.
deptName
=
""
;
this
.
deptName
=
""
;
this
.
attendanceGroupId
=
-
1L
;
this
.
attendanceGroupId
=
-
1L
;
this
.
attendanceGroupName
=
""
;
this
.
attendanceGroupName
=
""
;
this
.
attendanceDate
=
null
;
this
.
attendanceDate
=
null
;
this
.
ruleId
=
-
1L
;
this
.
ruleId
=
-
1L
;
this
.
ruleNme
=
""
;
this
.
errorTime
=
null
;
this
.
errorTime
=
null
;
this
.
goOffTimeStr
=
""
;
this
.
goOffTimeStr
=
""
;
this
.
actualAttendTime
=
null
;
this
.
actualAttendTime
=
null
;
this
.
errorResult
=
""
;
this
.
errorResult
=
""
;
this
.
subMethod
=
1
;
this
.
subMethod
=
1
;
this
.
deductPerson
=
""
;
this
.
deductPerson
=
""
;
this
.
deductTime
=
null
;
this
.
deductTime
=
null
;
this
.
subAddType
=
1
;
this
.
subAddType
=
1
;
this
.
score
=
BigDecimal
.
valueOf
(
0.00
)
;
this
.
score
=
BigDecimal
.
valueOf
(
0.00
)
;
this
.
processStatus
=
1
;
this
.
processStatus
=
1
;
this
.
remark
=
""
;
this
.
remark
=
""
;
this
.
fileNames
=
""
;
this
.
fileName
s
=
""
;
this
.
filePath
s
=
""
;
this
.
filePaths
=
""
;
this
.
categoryId
=
-
1L
;
this
.
categoryId
=
-
1L
;
this
.
categoryName
=
""
;
this
.
category
Name
=
""
;
this
.
rule
Name
=
""
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/model/PerformAttendRecordQuery.java
View file @
a6576662
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/StaffOnboardDao.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.dao
;
import
com.mortals.framework.dao.ICRUDDao
;
import
com.mortals.xhx.module.staff.model.StaffOnboardEntity
;
import
java.util.List
;
/**
* 员工入职信息Dao
* 员工入职信息 DAO接口
*
* @author zxfei
* @date 2023-07-16
*/
public
interface
StaffOnboardDao
extends
ICRUDDao
<
StaffOnboardEntity
,
Long
>{
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/dao/ibatis/StaffOnboardDaoImpl.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.dao.ibatis
;
import
org.springframework.stereotype.Repository
;
import
com.mortals.xhx.module.staff.dao.StaffOnboardDao
;
import
com.mortals.xhx.module.staff.model.StaffOnboardEntity
;
import
java.util.Date
;
import
com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis
;
import
java.util.List
;
/**
* 员工入职信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-07-16
*/
@Repository
(
"staffOnboardDao"
)
public
class
StaffOnboardDaoImpl
extends
BaseCRUDDaoMybatis
<
StaffOnboardEntity
,
Long
>
implements
StaffOnboardDao
{
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/model/StaffOnboardEntity.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.model
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.ArrayList
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mortals.framework.annotation.Excel
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.staff.model.vo.StaffOnboardVo
;
import
lombok.Data
;
/**
* 员工入职信息实体对象
*
* @author zxfei
* @date 2023-07-16
*/
@Data
public
class
StaffOnboardEntity
extends
StaffOnboardVo
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 员工ID
*/
private
Long
staffId
;
/**
* 员工姓名
*/
private
String
staffName
;
/**
* 性别(1.男,2.女)
*/
private
Integer
gender
;
/**
* 出生日期
*/
private
Date
birthday
;
/**
* 照片
*/
private
String
photoPath
;
/**
* 联系电话
*/
private
String
phoneNumber
;
/**
* 身份证号码
*/
private
String
idCard
;
/**
* 工号
*/
private
String
workNum
;
/**
* 入职登记表
*/
private
String
filePath
;
/**
* 政治面貌 (1.中共党员,2.中共预备党员,3.共青团员,4.群众,5.其它)
*/
private
Integer
politicalstatus
;
/**
* 所属部门
*/
private
Long
deptId
;
/**
* 所属部门名称
*/
private
String
deptName
;
/**
* 职位ID
*/
private
Long
jobId
;
/**
* 职位名称
*/
private
String
jobName
;
/**
* 员工类型(1.全职,2.兼职,3.实习)
*/
private
Integer
staffType
;
/**
* 员工状态(1.待入职,2.试用中,3.超期)
*/
private
Integer
onBoardStatus
;
/**
* 入职时间
*/
private
Date
entryDate
;
@Override
public
int
hashCode
()
{
return
this
.
getId
().
hashCode
();
}
@Override
public
boolean
equals
(
Object
obj
)
{
if
(
obj
==
null
)
return
false
;
if
(
obj
instanceof
StaffOnboardEntity
)
{
StaffOnboardEntity
tmp
=
(
StaffOnboardEntity
)
obj
;
if
(
this
.
getId
()
==
tmp
.
getId
())
{
return
true
;
}
}
return
false
;
}
public
void
initAttrValue
(){
this
.
staffId
=
-
1L
;
this
.
staffName
=
""
;
this
.
gender
=
1
;
this
.
birthday
=
null
;
this
.
photoPath
=
""
;
this
.
phoneNumber
=
""
;
this
.
idCard
=
""
;
this
.
workNum
=
""
;
this
.
filePath
=
""
;
this
.
politicalstatus
=
1
;
this
.
deptId
=
-
1L
;
this
.
deptName
=
""
;
this
.
jobId
=
-
1L
;
this
.
jobName
=
""
;
this
.
staffType
=
1
;
this
.
onBoardStatus
=
1
;
this
.
entryDate
=
null
;
}
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/model/StaffOnboardQuery.java
0 → 100644
View file @
a6576662
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/model/vo/StaffOnboardVo.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.model.vo
;
import
com.mortals.framework.model.BaseEntityLong
;
import
com.mortals.xhx.module.staff.model.StaffOnboardEntity
;
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
;
/**
* 员工入职信息视图对象
*
* @author zxfei
* @date 2023-07-16
*/
@Data
public
class
StaffOnboardVo
extends
BaseEntityLong
{
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/StaffOnboardService.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.service
;
import
com.mortals.framework.service.ICRUDService
;
import
com.mortals.xhx.module.staff.model.StaffOnboardEntity
;
import
com.mortals.xhx.module.staff.dao.StaffOnboardDao
;
/**
* StaffOnboardService
*
* 员工入职信息 service接口
*
* @author zxfei
* @date 2023-07-16
*/
public
interface
StaffOnboardService
extends
ICRUDService
<
StaffOnboardEntity
,
Long
>{
StaffOnboardDao
getDao
();
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffOnboardServiceImpl.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.service.impl
;
import
org.springframework.stereotype.Service
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.module.staff.dao.StaffOnboardDao
;
import
com.mortals.xhx.module.staff.model.StaffOnboardEntity
;
import
com.mortals.xhx.module.staff.service.StaffOnboardService
;
import
lombok.extern.slf4j.Slf4j
;
/**
* StaffOnboardService
* 员工入职信息 service实现
*
* @author zxfei
* @date 2023-07-16
*/
@Service
(
"staffOnboardService"
)
@Slf4j
public
class
StaffOnboardServiceImpl
extends
AbstractCRUDServiceImpl
<
StaffOnboardDao
,
StaffOnboardEntity
,
Long
>
implements
StaffOnboardService
{
}
\ No newline at end of file
attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffOnboardController.java
0 → 100644
View file @
a6576662
package
com.mortals.xhx.module.staff.web
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
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.staff.model.StaffOnboardEntity
;
import
com.mortals.xhx.module.staff.service.StaffOnboardService
;
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-16
*/
@RestController
@RequestMapping
(
"staff/onboard"
)
public
class
StaffOnboardController
extends
BaseCRUDJsonBodyMappingController
<
StaffOnboardService
,
StaffOnboardEntity
,
Long
>
{
@Autowired
private
ParamService
paramService
;
public
StaffOnboardController
(){
super
.
setModuleDesc
(
"员工入职信息"
);
}
@Override
protected
void
init
(
Map
<
String
,
Object
>
model
,
Context
context
)
{
this
.
addDict
(
model
,
"gender"
,
paramService
.
getParamBySecondOrganize
(
"StaffOnboard"
,
"gender"
));
this
.
addDict
(
model
,
"politicalstatus"
,
paramService
.
getParamBySecondOrganize
(
"StaffOnboard"
,
"politicalstatus"
));
this
.
addDict
(
model
,
"staffType"
,
paramService
.
getParamBySecondOrganize
(
"StaffOnboard"
,
"staffType"
));
this
.
addDict
(
model
,
"onBoardStatus"
,
paramService
.
getParamBySecondOrganize
(
"StaffOnboard"
,
"onBoardStatus"
));
super
.
init
(
model
,
context
);
}
}
\ No newline at end of file
attendance-performance-manager/src/main/resources/sqlmap/module/perform/PerformAttendRecordMapper.xml
View file @
a6576662
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/resources/sqlmap/module/staff/StaffOnboardMapper.xml
0 → 100644
View file @
a6576662
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/test/java/com/mortals/httpclient/staff/StaffOnboardController.http
0 → 100644
View file @
a6576662
###登录
POST {{baseUrl}}/login/login
Content-Type: application/json
{
"loginName":"admin",
"password":"admin",
"securityCode":"8888"
}
> {%
client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
client.global.set("authToken", JSON.parse(response.body).data.token);
%}
###员工入职信息列表
POST {{baseUrl}}/staff/onboard/list
Content-Type: application/json
{
"page":1,
"size":10
}
###员工入职信息更新与保存
POST {{baseUrl}}/staff/onboard/save
Authorization: {{authToken}}
Content-Type: application/json
{
"staffId":41,
"staffName":"x2t0e0",
"gender":1,
"birthday":"1689436800000",
"photoPath":"5yrbfh",
"phoneNumber":"0u5r86",
"idCard":"4d9xj3",
"workNum":"37mcc3",
"filePath":"s8j5i3",
"politicalstatus":1,
"deptId":862,
"deptName":"t6ei4m",
"jobId":69,
"jobName":"g088vz",
"staffType":1,
"onBoardStatus":1,
"entryDate":"1689436800000",
}
> {%
client.global.set("StaffOnboard_id", JSON.parse(response.body).data.id);
%}
###员工入职信息查看
GET {{baseUrl}}/staff/onboard/info?id={{StaffOnboard_id}}
Accept: application/json
###员工入职信息编辑
GET {{baseUrl}}/staff/onboard/edit?id={{StaffOnboard_id}}
Accept: application/json
###员工入职信息删除
GET {{baseUrl}}/staff/onboard/delete?id={{StaffOnboard_id}}
Authorization: {{authToken}}
Accept: application/json
db/add.sql
View file @
a6576662
...
...
@@ -657,3 +657,34 @@ ALTER TABLE mortals_xhx_user ADD COLUMN `dingUserId` varchar(64) DEFAULT ''
ALTER
TABLE
mortals_xhx_check_attend_record
ADD
COLUMN
`deductPerson`
varchar
(
128
)
DEFAULT
''
COMMENT
'扣分人员'
AFTER
subMethod
;
ALTER
TABLE
mortals_xhx_check_attend_record
ADD
COLUMN
`deductTime`
datetime
COMMENT
'扣分时间'
AFTER
deductPerson
;
-- ----------------------------
-- 员工入职信息表
-- ----------------------------
DROP
TABLE
IF
EXISTS
`mortals_xhx_staff_onboard`
;
CREATE
TABLE
mortals_xhx_staff_onboard
(
`id`
bigint
(
20
)
AUTO_INCREMENT
COMMENT
'序号,主键,自增长'
,
`staffId`
bigint
(
20
)
COMMENT
'员工ID'
,
`staffName`
varchar
(
64
)
NOT
NULL
COMMENT
'员工姓名'
,
`gender`
tinyint
(
2
)
DEFAULT
'1'
COMMENT
'性别(1.男,2.女)'
,
`birthday`
datetime
COMMENT
'出生日期'
,
`photoPath`
varchar
(
255
)
COMMENT
'照片'
,
`phoneNumber`
varchar
(
128
)
COMMENT
'联系电话'
,
`idCard`
varchar
(
128
)
COMMENT
'身份证号码'
,
`workNum`
varchar
(
128
)
COMMENT
'工号'
,
`filePath`
varchar
(
128
)
COMMENT
'入职登记表'
,
`politicalstatus`
tinyint
(
2
)
DEFAULT
'1'
COMMENT
'政治面貌 (1.中共党员,2.中共预备党员,3.共青团员,4.群众,5.其它)'
,
`deptId`
bigint
(
20
)
COMMENT
'所属部门'
,
`deptName`
varchar
(
128
)
COMMENT
'所属部门名称'
,
`jobId`
bigint
(
20
)
COMMENT
'职位ID'
,
`jobName`
varchar
(
128
)
COMMENT
'职位名称'
,
`staffType`
tinyint
(
2
)
DEFAULT
'1'
COMMENT
'员工类型(1.全职,2.兼职,3.实习)'
,
`onBoardStatus`
tinyint
(
2
)
DEFAULT
'1'
COMMENT
'员工状态(1.待入职,2.试用中,3.超期)'
,
`entryDate`
datetime
COMMENT
'入职时间'
,
`createUserId`
bigint
(
20
)
NOT
NULL
COMMENT
'创建用户'
,
`createTime`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`updateUserId`
bigint
(
20
)
COMMENT
'更新用户'
,
`updateTime`
datetime
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
COMMENT
=
'员工入职信息'
;
doc/考勤绩效管理系统.docx
View file @
a6576662
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment