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
c0c01b1a
Commit
c0c01b1a
authored
Aug 01, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改固定班次考勤
parent
5e32ade9
Changes
15
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
687 additions
and
39 deletions
+687
-39
attendance-performance-manager-ui/admin/src/views/attendance/record/hik/list.vue
...manager-ui/admin/src/views/attendance/record/hik/list.vue
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/base/login/web/LoginForm.java
...c/main/java/com/mortals/xhx/base/login/web/LoginForm.java
+11
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
...ls/xhx/base/system/user/service/impl/UserServiceImpl.java
+15
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/req/ReviewSaveReq.java
...main/java/com/mortals/xhx/busiz/h5/req/ReviewSaveReq.java
+2
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/ApiLoginController.java
...java/com/mortals/xhx/busiz/h5/web/ApiLoginController.java
+6
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
...com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/InspectApiController.java
...va/com/mortals/xhx/busiz/h5/web/InspectApiController.java
+6
-4
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/PerformApiController.java
...va/com/mortals/xhx/busiz/h5/web/PerformApiController.java
+64
-7
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
...tendance/service/impl/AttendanceRecordHikServiceImpl.java
+172
-7
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/AttendanceWorkAbstract.java
...odule/attendance/service/work/AttendanceWorkAbstract.java
+11
-3
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/CommonData.java
...ortals/xhx/module/attendance/service/work/CommonData.java
+8
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkAttendance.java
...xhx/module/attendance/service/work/FixWorkAttendance.java
+74
-3
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
...odule/attendance/service/work/FixWorkOtherAttendance.java
+308
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FreedomWorkAttendance.java
...module/attendance/service/work/FreedomWorkAttendance.java
+7
-12
attendance-performance-manager/src/main/resources/config/mybatis-sqlmap-config.xml
...nager/src/main/resources/config/mybatis-sqlmap-config.xml
+1
-1
No files found.
attendance-performance-manager-ui/admin/src/views/attendance/record/hik/list.vue
View file @
c0c01b1a
...
...
@@ -134,7 +134,7 @@
}
this
.
$post
(
'
/attendance/record/hik/addAttendanceRecord
'
,{...
params
}).
then
(
res
=>
{
if
(
res
.
code
==
1
){
this
.
$message
.
success
(
"
生成打卡记录成功!
"
)
}
})
},
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/base/login/web/LoginForm.java
View file @
c0c01b1a
...
...
@@ -10,6 +10,9 @@ public class LoginForm extends BaseForm {
private
String
securityCode
;
private
String
dingCode
;
public
String
getLoginName
()
{
return
loginName
;
}
...
...
@@ -35,6 +38,14 @@ public class LoginForm extends BaseForm {
this
.
securityCode
=
securityCode
;
}
public
String
getDingCode
()
{
return
dingCode
;
}
public
void
setDingCode
(
String
dingCode
)
{
this
.
dingCode
=
dingCode
;
}
@Override
public
String
toString
()
{
return
"loginName:"
+
this
.
loginName
+
" password:"
+
this
.
password
+
" securityCode:"
+
this
.
securityCode
;
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java
View file @
c0c01b1a
...
...
@@ -14,6 +14,7 @@ import com.mortals.framework.exception.AppException;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.model.Result
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.IUser
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.util.SecurityUtil
;
...
...
@@ -56,6 +57,9 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
private
ResourceService
resourceService
;
@Autowired
private
RoleUserService
roleUserService
;
@Autowired
private
ICacheService
cacheService
;
@Override
public
void
doHandlerUser
(
UserEntity
entity
)
throws
AppException
{
if
(
StringUtils
.
isNotEmpty
(
entity
.
getLoginPwd
()))
{
...
...
@@ -97,6 +101,17 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
}
}
@Override
protected
void
updateAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
//更新用户后 删除当前用户的token
Set
<
String
>
keys
=
cacheService
.
scan
(
SysConstains
.
LOGIN_TOKEN_KEY
+
entity
.
getId
());
if
(!
ObjectUtils
.
isEmpty
(
keys
))
{
for
(
String
key
:
keys
)
{
cacheService
.
del
(
key
);
}
}
}
@Override
protected
void
saveAfter
(
UserEntity
entity
,
Context
context
)
throws
AppException
{
//更新角色
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/req/ReviewSaveReq.java
View file @
c0c01b1a
...
...
@@ -33,4 +33,6 @@ public class ReviewSaveReq extends BaseReq {
*/
private
String
windowNum
;
private
String
filePaths
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/ApiLoginController.java
View file @
c0c01b1a
...
...
@@ -93,6 +93,12 @@ public class ApiLoginController extends BaseJsonBodyController {
userEntity
.
setExpireTime
(
DateUtils
.
addCurrDate
(
3
).
getTime
());
String
token
=
authTokenService
.
createToken
(
userEntity
);
data
.
put
(
"token"
,
token
);
if
(!
ObjectUtils
.
isEmpty
(
loginForm
.
getDingCode
()))
{
//更新绑定钉钉
userEntity
.
setDingUserId
(
loginForm
.
getDingCode
());
userService
.
getUserDao
().
update
(
userEntity
);
}
ret
.
put
(
KEY_RESULT_DATA
,
data
);
ret
.
put
(
KEY_RESULT_CODE
,
VALUE_RESULT_SUCCESS
);
ret
.
put
(
KEY_RESULT_MSG
,
"用户登录系统成功!"
);
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
View file @
c0c01b1a
...
...
@@ -113,7 +113,7 @@ public class DingTalkLoginController extends BaseCRUDJsonBodyMappingController<U
userEntity
=
userService
.
selectOne
(
userQuery
);
if
(
ObjectUtils
.
isEmpty
(
userEntity
))
{
ret
.
put
(
"openId"
,
personRest
.
getData
());
throw
new
AppException
(
REGISTER_AUTH_FAIL
,
"不存在当前匹配的钉钉关联用户
2
!"
);
throw
new
AppException
(
REGISTER_AUTH_FAIL
,
"不存在当前匹配的钉钉关联用户!"
);
}
data
.
put
(
"id"
,
userEntity
.
getId
());
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/InspectApiController.java
View file @
c0c01b1a
...
...
@@ -427,7 +427,7 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
req
,
recordEntity
);
// recordEntity.setStaffId(staffEntity.getId());
recordEntity
.
setStaffName
(
staffEntity
.
getName
());
recordEntity
.
setWorkNum
(
staffEntity
.
getWorkNum
());
recordEntity
.
setDeductTime
(
new
Date
());
StaffEntity
custStaff
=
getStaff
(
context
.
getUser
().
getCustomerId
().
toString
());
recordEntity
.
setDeductPerson
(
custStaff
==
null
?
"系统管理员"
:
custStaff
.
getName
());
...
...
@@ -459,7 +459,7 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
req
,
recordEntity
);
// recordEntity.setStaffId(staffEntity.getId());
recordEntity
.
setStaffName
(
staffEntity
.
getName
());
recordEntity
.
setWorkNum
(
staffEntity
.
getWorkNum
());
recordEntity
.
setDeptId
(
staffEntity
.
getDeptId
());
recordEntity
.
setDeptName
(
staffEntity
.
getDeptName
());
...
...
@@ -493,7 +493,7 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
req
,
recordEntity
);
// recordEntity.setStaffId(staffEntity.getId());
recordEntity
.
setStaffName
(
staffEntity
.
getName
());
recordEntity
.
setWorkNum
(
staffEntity
.
getWorkNum
());
recordEntity
.
setDeductTime
(
new
Date
());
StaffEntity
custStaff
=
getStaff
(
context
.
getUser
().
getCustomerId
().
toString
());
recordEntity
.
setDeductPerson
(
custStaff
==
null
?
"系统管理员"
:
custStaff
.
getName
());
...
...
@@ -526,6 +526,8 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
//recordEntity.setStaffId(staffEntity.getId());
recordEntity
.
setStaffName
(
staffEntity
.
getName
());
recordEntity
.
setWorkNum
(
staffEntity
.
getWorkNum
());
recordEntity
.
setDeductTime
(
new
Date
());
StaffEntity
custStaff
=
getStaff
(
context
.
getUser
().
getCustomerId
().
toString
());
recordEntity
.
setDeductPerson
(
custStaff
==
null
?
"系统管理员"
:
custStaff
.
getName
());
...
...
@@ -557,7 +559,7 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
req
,
recordEntity
);
//recordEntity.setStaffId(staffEntity.getId());
recordEntity
.
setStaffName
(
staffEntity
.
getName
());
recordEntity
.
setWorkNum
(
staffEntity
.
getWorkNum
());
recordEntity
.
setDeductTime
(
new
Date
());
StaffEntity
custStaff
=
getStaff
(
context
.
getUser
().
getCustomerId
().
toString
());
recordEntity
.
setDeductPerson
(
custStaff
==
null
?
"系统管理员"
:
custStaff
.
getName
());
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/PerformApiController.java
View file @
c0c01b1a
...
...
@@ -188,7 +188,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
List
<
PerformInfo
>
collect
=
allCheckRecord
.
stream
().
map
(
item
->
{
PerformInfo
performInfo
=
new
PerformInfo
();
BeanUtils
.
copyProperties
(
item
,
performInfo
,
BeanUtil
.
getNullPropertyNames
(
item
));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
item
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
item
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
}).
collect
(
Collectors
.
toList
());
...
...
@@ -212,7 +217,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
item
,
performInfo
,
BeanUtil
.
getNullPropertyNames
(
item
));
performInfo
.
setPerformType
(
PerformTypeEnum
.
考勤绩效
.
getValue
());
//判断是否存在申诉
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
performInfo
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
performInfo
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
//PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()).performType(performInfo.getPerformType()));
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
}).
collect
(
Collectors
.
toList
());
...
...
@@ -235,7 +245,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
item
,
performInfo
,
BeanUtil
.
getNullPropertyNames
(
item
));
performInfo
.
setPerformType
(
PerformTypeEnum
.
评价差评绩效
.
getValue
());
//判断是否存在申诉
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
performInfo
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
performInfo
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
//PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()).performType(performInfo.getPerformType()));
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
...
...
@@ -259,7 +274,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
performInfo
.
setPerformType
(
PerformTypeEnum
.
评价投诉绩效
.
getValue
());
//判断是否存在申诉
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
performInfo
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
performInfo
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
//PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()).performType(performInfo.getPerformType()));
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
}).
collect
(
Collectors
.
toList
());
...
...
@@ -281,7 +301,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
item
,
performInfo
,
BeanUtil
.
getNullPropertyNames
(
item
));
performInfo
.
setPerformType
(
PerformTypeEnum
.
办件绩效
.
getValue
());
//判断是否存在申诉
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
performInfo
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
performInfo
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
// PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()).performType(performInfo.getPerformType()));
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
...
...
@@ -304,7 +329,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
item
,
performInfo
,
BeanUtil
.
getNullPropertyNames
(
item
));
performInfo
.
setPerformType
(
PerformTypeEnum
.
效能绩效
.
getValue
());
//判断是否存在申诉
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
performInfo
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
performInfo
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
// PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()).performType(performInfo.getPerformType()));
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
}).
collect
(
Collectors
.
toList
());
...
...
@@ -324,7 +354,12 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
BeanUtils
.
copyProperties
(
item
,
performInfo
,
BeanUtil
.
getNullPropertyNames
(
item
));
performInfo
.
setPerformType
(
PerformTypeEnum
.
其它绩效
.
getValue
());
//判断是否存在申诉
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
new
PerformAttendAppealQuery
().
checkRecordId
(
item
.
getId
()).
performType
(
performInfo
.
getPerformType
()));
PerformAttendAppealQuery
appealQuery
=
new
PerformAttendAppealQuery
();
appealQuery
.
setCheckRecordId
(
item
.
getId
());
appealQuery
.
setPerformType
(
performInfo
.
getPerformType
());
appealQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"appealResult"
,
OrderCol
.
DESCENDING
)));
PerformAttendAppealEntity
entity
=
appealService
.
selectOne
(
appealQuery
);
// PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()).performType(performInfo.getPerformType()));
updateAppealResult
(
performInfo
,
entity
);
return
performInfo
;
...
...
@@ -370,6 +405,28 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
}
}
private
void
updateAppealResult
(
PerformInfo
performInfo
,
List
<
PerformAttendAppealEntity
>
list
)
{
if
(!
ObjectUtils
.
isEmpty
(
list
))
{
for
(
PerformAttendAppealEntity
entity
:
list
)
{
if
(
ObjectUtils
.
isEmpty
(
entity
.
getAppealResult
()))
{
performInfo
.
setAppealStatus
(
AppealStatusEnum
.
申诉中
.
getValue
());
}
else
{
if
(
AppealResultEnum
.
通过
.
getValue
()
==
entity
.
getAppealResult
())
{
performInfo
.
setAppealStatus
(
AppealStatusEnum
.
申诉通过
.
getValue
());
}
else
if
(
AppealResultEnum
.
不通过
.
getValue
()
==
entity
.
getAppealResult
())
{
performInfo
.
setAppealStatus
(
AppealStatusEnum
.
申诉拒绝
.
getValue
());
}
else
{
performInfo
.
setAppealStatus
(
AppealStatusEnum
.
申诉中
.
getValue
());
}
}
}
}
else
{
performInfo
.
setAppealStatus
(
AppealStatusEnum
.
未申诉
.
getValue
());
}
}
/**
* 详细
*/
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
View file @
c0c01b1a
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/AttendanceWorkAbstract.java
View file @
c0c01b1a
...
...
@@ -2,10 +2,15 @@ package com.mortals.xhx.module.attendance.service.work;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.xhx.common.code.TypeEnum
;
import
com.mortals.xhx.module.attendance.model.AttendanceGroupFixedworkEntity
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.module.attendance.model.*
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* 工作排班抽象类
...
...
@@ -26,7 +31,8 @@ public abstract class AttendanceWorkAbstract {
public
static
AttendanceWorkAbstract
newType
(
int
type
)
{
if
(
type
==
TypeEnum
.
固定班制
.
getValue
())
{
return
new
FixWorkAttendance
(
type
);
//return new FixWorkAttendance(type);
return
new
FixWorkOtherAttendance
(
type
);
}
else
if
(
type
==
TypeEnum
.
自由工时
.
getValue
())
{
return
new
FreedomWorkAttendance
(
type
);
}
...
...
@@ -115,6 +121,8 @@ public abstract class AttendanceWorkAbstract {
return
weekClassId
;
}
public
AttendanceWorkAbstract
(
int
type
)
{
this
.
type
=
type
;
}
...
...
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/CommonData.java
View file @
c0c01b1a
package
com.mortals.xhx.module.attendance.service.work
;
import
com.mortals.framework.model.Context
;
import
com.mortals.xhx.module.attendance.model.AttendanceGroupEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity
;
import
com.mortals.xhx.module.attendance.model.AttendanceRecordEntity
;
import
lombok.Data
;
import
java.util.Date
;
...
...
@@ -24,6 +26,12 @@ public class CommonData {
private
Date
attendanceDate
;
private
Long
staffId
;
//当前日期
private
String
dateStr
;
//当天考勤信息
private
AttendanceRecordEntity
attendanceRecordEntity
;
private
Context
context
;
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkAttendance.java
View file @
c0c01b1a
...
...
@@ -2,19 +2,24 @@ package com.mortals.xhx.module.attendance.service.work;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.xhx.common.code.GoWorkResultEnum
;
import
com.mortals.xhx.common.code.MustEnum
;
import
com.mortals.xhx.common.code.TypeEnum
;
import
com.mortals.xhx.module.attendance.model.*
;
import
com.mortals.xhx.module.attendance.service.AttendanceClassService
;
import
com.mortals.xhx.module.attendance.service.AttendanceGroupFixedworkService
;
import
com.mortals.xhx.module.attendance.service.AttendanceGroupFixedworkSpecialService
;
import
com.mortals.xhx.utils.SpringUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 固定班
*
* @author:
* @date: 2023/7/31 15:15
*/
...
...
@@ -26,11 +31,14 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
private
AttendanceClassService
attendanceClassService
;
private
AttendanceGroupFixedworkSpecialService
specialService
;
public
FixWorkAttendance
(
int
type
)
{
super
(
type
);
this
.
attendanceGroupFixedworkService
=
SpringUtils
.
getBean
(
AttendanceGroupFixedworkService
.
class
);
this
.
attendanceClassService
=
SpringUtils
.
getBean
(
AttendanceClassService
.
class
);
this
.
specialService
=
SpringUtils
.
getBean
(
AttendanceGroupFixedworkSpecialService
.
class
);
}
...
...
@@ -64,6 +72,68 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
//跳过本次循环
return
;
}
//特殊日期考勤配置
List
<
AttendanceGroupFixedworkSpecialEntity
>
specialEntities
=
specialService
.
find
(
new
AttendanceGroupFixedworkSpecialQuery
().
fixedWorkId
(
attendanceGroupFixedworkEntity
.
getId
()));
if
(!
ObjectUtils
.
isEmpty
(
specialEntities
))
{
//分组 需要考勤与不需要考勤
Map
<
Boolean
,
List
<
AttendanceGroupFixedworkSpecialEntity
>>
collect
=
specialEntities
.
stream
().
collect
(
Collectors
.
partitioningBy
(
item
->
item
.
getMust
()
==
MustEnum
.
是
.
getValue
()));
List
<
AttendanceGroupFixedworkSpecialEntity
>
mustList
=
collect
.
get
(
true
);
if
(!
ObjectUtils
.
isEmpty
(
mustList
))
{
//需要打卡
for
(
AttendanceGroupFixedworkSpecialEntity
specialEntity
:
mustList
)
{
//必须考勤时间,单位日
Date
specialTime
=
specialEntity
.
getSpecialTime
();
//判断当前考勤日期是否需要考勤,如果需要重叠 则更新为特殊日期考勤
//判断考勤日期与特殊日期是否一致
if
(
DateUtil
.
formatDate
(
commonData
.
getAttendanceDate
()).
equals
(
DateUtil
.
formatDate
(
specialTime
)))
{
//更新打卡情况
weekClassId
=
specialEntity
.
getClassId
();
}
}
}
List
<
AttendanceGroupFixedworkSpecialEntity
>
mustNotList
=
collect
.
get
(
false
);
if
(!
ObjectUtils
.
isEmpty
(
mustNotList
))
{
//不需要考勤 查看是时间段还是单独时间
for
(
AttendanceGroupFixedworkSpecialEntity
specialEntity
:
mustNotList
)
{
Date
specialTime
=
specialEntity
.
getSpecialTime
();
if
(!
ObjectUtils
.
isEmpty
(
specialTime
))
{
if
(
DateUtil
.
formatDate
(
commonData
.
getAttendanceDate
()).
equals
(
DateUtil
.
formatDate
(
specialTime
)))
{
//当前日期不需要考勤打卡
//获取班次信息
AttendanceClassEntity
attendanceClassEntity
=
attendanceClassService
.
get
(
weekClassId
);
if
(
ObjectUtils
.
isEmpty
(
attendanceClassEntity
))
{
log
.
info
(
"attendanceClassEntity is null ,weekClassId:{}"
,
weekClassId
);
return
;
}
//List<AttendanceClassDetailEntity> attendanceClassDetailEntities = attendanceClassDetailService.find(new AttendanceClassDetailQuery().classId(attendanceClassEntity.getId()));
//获取当前班的多个班次,一个班次为一个上下班时间段
List
<
AttendanceClassDetailEntity
>
attendanceClassDetailEntities
=
attendanceClassEntity
.
getAttendanceClassDetailList
();
for
(
AttendanceClassDetailEntity
classDetail
:
attendanceClassDetailEntities
)
{
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
commonData
.
getDetailEntityList
())
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
()
==
classDetail
.
getId
())
{
attendanceRecordDetailEntity
.
setGoWorkResult
(
GoWorkResultEnum
.
正常
.
getValue
());
attendanceRecordDetailEntity
.
setGoWorkDate
(
commonData
.
getAttendanceDate
());
}
}
for
(
AttendanceRecordDetailEntity
attendanceRecordDetailEntity
:
commonData
.
getDetailEntityList
())
{
if
(
attendanceRecordDetailEntity
.
getShiftsId
()
==
classDetail
.
getId
())
{
attendanceRecordDetailEntity
.
setOffWorkResult
(
GoWorkResultEnum
.
正常
.
getValue
());
attendanceRecordDetailEntity
.
setOffWorkDate
(
commonData
.
getAttendanceDate
());
}
}
}
}
return
;
}
}
}
}
//获取班次信息
AttendanceClassEntity
attendanceClassEntity
=
attendanceClassService
.
get
(
weekClassId
);
if
(
ObjectUtils
.
isEmpty
(
attendanceClassEntity
))
{
...
...
@@ -77,7 +147,7 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
Integer
orderNum
=
0
;
//构造数据
if
(
ObjectUtils
.
isEmpty
(
commonData
.
getDetailEntityList
()))
{
//遍历班次 构建
详细考勤数据
//遍历班次 构建
初始详细考勤数据 当天的第二次考勤记录进来时不做初始化
for
(
AttendanceClassDetailEntity
classDetailEntity
:
attendanceClassDetailEntities
)
{
orderNum
++;
AttendanceRecordDetailEntity
recordDetailEntity
=
new
AttendanceRecordDetailEntity
();
...
...
@@ -89,6 +159,7 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
commonData
.
getDetailEntityList
().
add
(
recordDetailEntity
);
}
}
//遍历班次详细记录
for
(
AttendanceClassDetailEntity
classDetail
:
attendanceClassDetailEntities
)
{
//计算区间范围
//上班打卡前时间
...
...
@@ -147,7 +218,7 @@ public class FixWorkAttendance extends AttendanceWorkAbstract {
}
}
}
}
}
}
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
0 → 100644
View file @
c0c01b1a
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FreedomWorkAttendance.java
View file @
c0c01b1a
...
...
@@ -35,8 +35,6 @@ public class FreedomWorkAttendance extends AttendanceWorkAbstract {
private
AttendanceGroupFreeworkSpecialService
specialService
;
@Autowired
private
AttendanceRecordHikService
recordHikService
;
...
...
@@ -46,6 +44,7 @@ public class FreedomWorkAttendance extends AttendanceWorkAbstract {
this
.
attendanceClassService
=
SpringUtils
.
getBean
(
AttendanceClassService
.
class
);
this
.
attendanceRecordService
=
SpringUtils
.
getBean
(
AttendanceRecordService
.
class
);
this
.
specialService
=
SpringUtils
.
getBean
(
AttendanceGroupFreeworkSpecialService
.
class
);
this
.
recordHikService
=
SpringUtils
.
getBean
(
AttendanceRecordHikService
.
class
);
}
@Override
...
...
@@ -72,8 +71,9 @@ public class FreedomWorkAttendance extends AttendanceWorkAbstract {
// 查询当前这个人今日的考勤数据,并且按打卡时间进行升序排列
AttendanceRecordHikQuery
recordHikQuery
=
new
AttendanceRecordHikQuery
();
recordHikQuery
.
setAttendanceDateStart
(
DateUtil
.
today
());
recordHikQuery
.
setAttendanceDateEnd
(
DateUtil
.
today
());
recordHikQuery
.
setAttendanceDateStart
(
DateUtil
.
date
(
commonData
.
getAttendanceDate
()).
toDateStr
());
recordHikQuery
.
setAttendanceDateEnd
(
DateUtil
.
date
(
commonData
.
getAttendanceDate
()).
toDateStr
());
recordHikQuery
.
setStaffId
(
commonData
.
getStaffId
());
recordHikQuery
.
setOrderColList
(
Arrays
.
asList
(
new
OrderCol
(
"attendanceDate"
)));
List
<
AttendanceRecordHikEntity
>
recordHikEntities
=
recordHikService
.
find
(
recordHikQuery
);
...
...
@@ -123,19 +123,14 @@ public class FreedomWorkAttendance extends AttendanceWorkAbstract {
Map
<
Boolean
,
List
<
AttendanceGroupFreeworkSpecialEntity
>>
collect
=
specialEntities
.
stream
().
collect
(
Collectors
.
partitioningBy
(
item
->
item
.
getMust
()
==
MustEnum
.
是
.
getValue
()));
List
<
AttendanceGroupFreeworkSpecialEntity
>
mustList
=
collect
.
get
(
true
);
if
(!
ObjectUtils
.
isEmpty
(
mustList
))
{
if
(!
ObjectUtils
.
isEmpty
(
mustList
))
{
//需要打卡
for
(
AttendanceGroupFreeworkSpecialEntity
specialEntity
:
mustList
)
{
}
}
List
<
AttendanceGroupFreeworkSpecialEntity
>
mustNotList
=
collect
.
get
(
false
);
}
...
...
attendance-performance-manager/src/main/resources/config/mybatis-sqlmap-config.xml
View file @
c0c01b1a
...
...
@@ -20,7 +20,7 @@
<plugin
interceptor=
"com.mortals.framework.thirty.mybatis.LogInterceptor"
>
<property
name=
"enableExecutorTime"
value=
"true"
/>
<property
name=
"showSql"
value=
"
tru
e"
/>
<property
name=
"showSql"
value=
"
fals
e"
/>
</plugin>
</plugins>
</configuration>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment