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
bd8f3bbf
Commit
bd8f3bbf
authored
3 months ago
by
廖旭伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
1c18b14e
91cfa102
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
82 additions
and
40 deletions
+82
-40
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/ApiWebPerformController.java
...com/mortals/xhx/busiz/h5/web/ApiWebPerformController.java
+4
-4
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceLeaveRecordServiceImpl.java
...ndance/service/impl/AttendanceLeaveRecordServiceImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
...ndance/service/impl/AttendanceRecordErrorServiceImpl.java
+13
-11
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
...odule/attendance/service/work/FixWorkOtherAttendance.java
+2
-2
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
...mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
+37
-13
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
...dingding/personal/service/impl/DingPersonServiceImpl.java
+14
-0
attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
...-manager/src/test/java/com/mortals/httpclient/system.http
+5
-4
db/base.sql
db/base.sql
+6
-5
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/ApiWebPerformController.java
View file @
bd8f3bbf
...
...
@@ -104,7 +104,7 @@ public class ApiWebPerformController extends AbstractBaseController<PerformReq>
boolean
bool
=
review
(
req
);
if
(
bool
)
throw
new
AppException
(
busiDesc
+
"失败!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
busiDesc
,
e
);
log
.
error
(
busiDesc
,
e
.
getMessage
()
);
return
Rest
.
fail
(
e
.
getMessage
());
}
log
.
info
(
"响应【{}】【响应体】--> {} "
,
busiDesc
,
JSONObject
.
toJSONString
(
rest
));
...
...
@@ -129,7 +129,7 @@ public class ApiWebPerformController extends AbstractBaseController<PerformReq>
boolean
bool
=
complain
(
req
);
if
(
bool
)
throw
new
AppException
(
busiDesc
+
"失败!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
busiDesc
,
e
);
log
.
error
(
busiDesc
,
e
.
getMessage
()
);
return
Rest
.
fail
(
e
.
getMessage
());
}
log
.
info
(
"响应【{}】【响应体】--> {} "
,
busiDesc
,
JSONObject
.
toJSONString
(
rest
));
...
...
@@ -154,7 +154,7 @@ public class ApiWebPerformController extends AbstractBaseController<PerformReq>
boolean
bool
=
gowork
(
req
);
if
(
bool
)
throw
new
AppException
(
busiDesc
+
"失败!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
busiDesc
,
e
);
log
.
error
(
busiDesc
,
e
.
getMessage
()
);
return
Rest
.
fail
(
e
.
getMessage
());
}
log
.
info
(
"响应【{}】【响应体】--> {} "
,
busiDesc
,
JSONObject
.
toJSONString
(
rest
));
...
...
@@ -184,7 +184,7 @@ public class ApiWebPerformController extends AbstractBaseController<PerformReq>
effect
(
req
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
busiDesc
,
e
);
log
.
error
(
busiDesc
,
e
.
getMessage
()
);
return
Rest
.
fail
(
e
.
getMessage
());
}
log
.
info
(
"响应【{}】【响应体】--> {} "
,
busiDesc
,
JSONObject
.
toJSONString
(
rest
));
...
...
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceLeaveRecordServiceImpl.java
View file @
bd8f3bbf
...
...
@@ -174,7 +174,7 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At
DateTime
attendStart
=
DateUtil
.
parseDate
(
DateUtil
.
formatDate
(
entity
.
getStartTime
()));
DateTime
attendEnd
=
DateUtil
.
parseDate
(
DateUtil
.
formatDate
(
entity
.
getEndTime
()));
Long
compare1
=
DateUtil
.
between
(
attendEnd
,
attendStart
,
DateUnit
.
DAY
);
Long
compare1
=
DateUtil
.
between
Day
(
attendEnd
,
attendStart
,
true
);
log
.
info
(
"考勤计算天数区间:{}"
,
compare1
);
for
(
int
i
=
0
;
i
<=
compare1
.
intValue
();
i
++)
{
DateTime
curDate
=
DateUtil
.
offsetDay
(
attendStart
,
i
);
...
...
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
View file @
bd8f3bbf
...
...
@@ -3,34 +3,33 @@ package com.mortals.xhx.module.attendance.service.impl;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.model.Context
;
import
com.mortals.framework.model.PageInfo
;
import
com.mortals.framework.service.ICacheService
;
import
com.mortals.framework.service.impl.AbstractCRUDServiceImpl
;
import
com.mortals.framework.util.DataUtil
;
import
com.mortals.framework.util.DateUtils
;
import
com.mortals.framework.util.StringUtils
;
import
com.mortals.xhx.busiz.h5.req.AttendSaveReq
;
import
com.mortals.xhx.busiz.h5.web.ApiWebPerformController
;
import
com.mortals.xhx.common.code.*
;
import
com.mortals.xhx.module.attendance.dao.AttendanceRecordErrorDao
;
import
com.mortals.xhx.module.attendance.model.*
;
import
com.mortals.xhx.module.attendance.model.vo.AttendanceSummaryQuery
;
import
com.mortals.xhx.module.attendance.model.vo.ErrorSummaryVo
;
import
com.mortals.xhx.module.attendance.service.*
;
import
com.mortals.xhx.module.attendance.service.AttendanceClassDetailService
;
import
com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService
;
import
com.mortals.xhx.module.attendance.service.AttendanceRecordErrorService
;
import
com.mortals.xhx.module.check.model.CheckAttendRecordEntity
;
import
com.mortals.xhx.module.check.model.CheckAttendRecordQuery
;
import
com.mortals.xhx.module.check.model.vo.StaffCheckSummaryQuery
;
import
com.mortals.xhx.module.check.service.CheckAttendRecordService
;
import
com.mortals.xhx.module.perform.model.PerformAttendRecordEntity
;
import
com.mortals.xhx.module.perform.model.PerformAttendRecordQuery
;
import
com.mortals.xhx.module.perform.service.PerformAttendRecordService
;
import
com.mortals.xhx.module.staff.service.StaffService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.attendance.dao.AttendanceRecordErrorDao
;
import
org.springframework.util.ObjectUtils
;
import
java.time.LocalDate
;
...
...
@@ -349,7 +348,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
goOffDateTime
=
DateUtil
.
offsetMinute
(
goOffDateTime
,
-
attendanceClassDetailEntity
.
getOffWorkDateBefore
());
}
for
(
AttendanceLeaveRecordEntity
leaveRecord
:
leaveRecords
)
{
long
between
=
DateUtil
.
between
(
leaveRecord
.
getStartTime
(),
leaveRecord
.
getEndTime
(),
DateUnit
.
DAY
);
long
between
=
DateUtil
.
between
Day
(
leaveRecord
.
getStartTime
(),
leaveRecord
.
getEndTime
(),
true
);
if
(
between
==
0
)
{
//当天
// 1.判断异常时间与请假结束时间那个大。取大那个与当前班次下班时间比较差值,去正向值 偏移后的时间计算
...
...
@@ -423,7 +422,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
}
for
(
AttendanceLeaveRecordEntity
leaveRecord
:
leaveRecords
)
{
long
between
=
DateUtil
.
between
(
leaveRecord
.
getStartTime
(),
leaveRecord
.
getEndTime
(),
DateUnit
.
DAY
);
long
between
=
DateUtil
.
between
Day
(
leaveRecord
.
getStartTime
(),
leaveRecord
.
getEndTime
(),
true
);
if
(
between
==
0
)
{
//当天
// 1.判断异常时间与请假开始时间那个大。
...
...
@@ -514,9 +513,12 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
public
static
void
main
(
String
[]
args
)
{
long
compare
=
DateUtil
.
compare
(
DateUtil
.
parseDateTime
(
"2024-07-01 15:00:00"
),
DateUtil
.
parseDateTime
(
"2024-07-01 16:00:00"
));
long
between
=
DateUtil
.
between
(
DateUtil
.
parseDateTime
(
"2024-07-01 15:00:00"
),
DateUtil
.
parseDateTime
(
"2024-07-01 16:00:00"
),
DateUnit
.
MINUTE
,
false
);
// long between = DateUtil.between(DateUtil.parseDateTime("2024-07-01 15:00:00"), DateUtil.parseDateTime("2024-07-01 16:00:00"), DateUnit.MINUTE, false);
long
between
=
DateUtil
.
betweenDay
(
DateUtil
.
parseDateTime
(
"2024-07-01 15:00:00"
),
DateUtil
.
parseDateTime
(
"2024-07-03 14:00:00"
),
true
);
long
between1
=
DateUtil
.
between
(
DateUtil
.
parseDateTime
(
"2024-07-01 15:00:00"
),
DateUtil
.
parseDateTime
(
"2024-07-03 14:00:00"
),
DateUnit
.
DAY
);
System
.
out
.
println
(
compare
);
System
.
out
.
println
(
between
);
System
.
out
.
println
(
between1
);
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
View file @
bd8f3bbf
...
...
@@ -293,11 +293,11 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
if
(
isLeave
)
{
//查看请假时间段,是否为跨天记录
for
(
AttendanceLeaveRecordEntity
leaveRecord
:
leaveRecords
)
{
long
between
=
DateUtil
.
between
(
leaveRecord
.
getStartTime
(),
leaveRecord
.
getEndTime
(),
DateUnit
.
DAY
);
long
between
=
DateUtil
.
between
Day
(
leaveRecord
.
getStartTime
(),
leaveRecord
.
getEndTime
(),
true
);
if
(
between
>
0
)
{
//跨天 判断当前日期是否在全天,没在 就
//判断日期是否在最后一天 不是的话 为全天
long
betweened
=
DateUtil
.
between
(
DateUtil
.
parseDate
(
commonData
.
getDateStr
()),
leaveRecord
.
getEndTime
(),
DateUnit
.
DAY
);
long
betweened
=
DateUtil
.
between
Day
(
DateUtil
.
parseDate
(
commonData
.
getDateStr
()),
leaveRecord
.
getEndTime
(),
true
);
if
(
betweened
>
0
)
{
//全天
calLeaveDate
(
commonData
,
DateUtil
.
parseDateTime
(
commonData
.
getDateStr
()
+
" 00:00:00"
),
DateUtil
.
parseDateTime
(
commonData
.
getDateStr
()
+
" 23:59:59"
));
...
...
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
View file @
bd8f3bbf
...
...
@@ -29,6 +29,7 @@ import org.springframework.util.ObjectUtils;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
* DeptService
...
...
@@ -172,17 +173,19 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
StaffQuery
query
=
new
StaffQuery
();
query
.
setStatusNotList
(
Arrays
.
asList
(
StaffSatusEnum
.
离职
.
getValue
()));
query
.
setDeptIdList
(
getChildrenId
(
m
,
list
));
int
count
=
staffService
.
count
(
query
,
null
);
int
count
=
staffService
.
count
(
query
,
null
);
m
.
setPersonNum
(
count
);
return
m
;
}
).
collect
(
Collectors
.
toList
());
return
returnList
.
stream
().
map
(
DeptTreeSelect:
:
new
).
collect
(
Collectors
.
toList
());
}
/**
* 递归查询子节点
* @param root 根节点
* @param all 所有节点
*
* @param root 根节点
* @param all 所有节点
* @return 根节点信息
*/
private
List
<
DeptEntity
>
getChildren
(
DeptEntity
root
,
List
<
DeptEntity
>
all
)
{
...
...
@@ -194,7 +197,7 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
StaffQuery
query
=
new
StaffQuery
();
query
.
setDeptIdList
(
getChildrenId
(
m
,
all
));
query
.
setStatusNotList
(
Arrays
.
asList
(
StaffSatusEnum
.
离职
.
getValue
()));
int
count
=
staffService
.
count
(
query
,
null
);
int
count
=
staffService
.
count
(
query
,
null
);
m
.
setPersonNum
(
count
);
return
m
;
}
...
...
@@ -202,12 +205,12 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
return
children
;
}
private
List
<
Long
>
getChildrenId
(
DeptEntity
root
,
List
<
DeptEntity
>
all
){
private
List
<
Long
>
getChildrenId
(
DeptEntity
root
,
List
<
DeptEntity
>
all
)
{
List
<
Long
>
idList
=
new
ArrayList
<>();
idList
.
add
(
root
.
getId
());
all
.
forEach
(
item
->{
if
(
Objects
.
equals
(
item
.
getParentId
(),
root
.
getId
()))
{
idList
.
addAll
(
getChildrenId
(
item
,
all
));
all
.
forEach
(
item
->
{
if
(
Objects
.
equals
(
item
.
getParentId
(),
root
.
getId
()))
{
idList
.
addAll
(
getChildrenId
(
item
,
all
));
}
});
return
idList
;
...
...
@@ -266,8 +269,8 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
parentDept
.
setPersonNum
(
sum
);
this
.
update
(
parentDept
);
}
}
else
{
log
.
info
(
"deptEntity is null.deptId:{}"
,
item
.
getKey
());
}
else
{
log
.
info
(
"deptEntity is null.deptId:{}"
,
item
.
getKey
());
}
}
...
...
@@ -287,14 +290,14 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
@Override
public
List
<
DeptEntity
>
getDeptBySalaId
(
Long
salaId
)
throws
AppException
{
DeptQuery
query
=
new
DeptQuery
();
if
(
salaId
==
null
||
salaId
==
-
1
l
)
{
if
(
salaId
==
null
||
salaId
==
-
1
l
)
{
List
<
DeptEntity
>
allSala
=
dao
.
getList
(
new
DeptQuery
().
parentId
(
71
l
));
List
<
Long
>
salaList
=
new
ArrayList
<>();
for
(
DeptEntity
item:
allSala
)
{
for
(
DeptEntity
item
:
allSala
)
{
salaList
.
add
(
item
.
getId
());
}
query
.
setParentIdList
(
salaList
);
}
else
{
}
else
{
query
.
setParentId
(
salaId
);
}
return
dao
.
getList
(
query
);
...
...
@@ -338,6 +341,27 @@ public class DeptServiceImpl extends AbstractCRUDServiceImpl<DeptDao, DeptEntity
this
.
update
(
deptEntity
);
}
}
//差额删除部门
List
<
DeptEntity
>
localDeptList
=
this
.
find
(
new
DeptQuery
());
// Map<String, DeptEntity> localDeptMap = localDeptList.stream().collect(Collectors.toMap(x -> x.getDeptCode(), y -> y, (o, n) -> n));
//差额对
Map
<
String
,
OrgInfo
>
remoteDeptMap
=
orgInfoList
.
stream
().
collect
(
Collectors
.
toMap
(
x
->
x
.
getOrgIndexCode
(),
y
->
y
,
(
o
,
n
)
->
n
));
List
<
DeptEntity
>
deleteLocalDeptList
=
localDeptList
.
stream
().
map
(
item
->
{
String
deptCode
=
item
.
getDeptCode
();
OrgInfo
orgInfo
=
remoteDeptMap
.
get
(
deptCode
);
if
(
ObjectUtils
.
isEmpty
(
orgInfo
))
{
//需要删除的本地部门
return
item
;
}
else
{
return
null
;
}
}).
filter
(
f
->
f
!=
null
).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
deleteLocalDeptList
))
{
log
.
info
(
"delete dept lsit size :{}"
,
deleteLocalDeptList
.
size
());
}
}
return
Rest
.
ok
();
...
...
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
View file @
bd8f3bbf
...
...
@@ -959,6 +959,20 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
}
}
if
(
dateString
.
contains
(
"AM"
))
{
if
(
tag
)
{
dateString
=
dateString
.
replace
(
"AM"
,
"09:00"
);
}
else
{
dateString
=
dateString
.
replace
(
"AM"
,
"12:00"
);
}
}
else
{
if
(
tag
)
{
dateString
=
dateString
.
replace
(
"PM"
,
"13:00"
);
}
else
{
dateString
=
dateString
.
replace
(
"PM"
,
"18:00"
);
}
}
//只有日期的字符串要处理加上时间 否则会转换出错
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
try
{
...
...
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
View file @
bd8f3bbf
...
...
@@ -49,8 +49,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json
{
"attendanceDateStart": "202
4-10-19
",
"attendanceDateEnd": "202
4-10-31
"
"attendanceDateStart": "202
5-01-01
",
"attendanceDateEnd": "202
5-01-02
"
}
###海康考勤打卡记录计算1
...
...
@@ -58,8 +58,9 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
Content-Type: application/json
{
"attendanceDateStart": "2024-11-18",
"attendanceDateEnd": "2024-11-26"
"attendanceDateStart": "2025-01-20",
"attendanceDateEnd": "2025-01-21",
"staffId":317
}
...
...
This diff is collapsed.
Click to expand it.
db/base.sql
View file @
bd8f3bbf
This diff is collapsed.
Click to expand it.
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