Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ghsby
o2oa
提交
27b76172
o2oa
项目概览
ghsby
/
o2oa
落后 Fork 源项目 2880 个版本
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
27b76172
编写于
8月 05, 2020
作者:
L
luojing
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
考勤,部门考勤月报排除不参加考勤的组织和人员
上级
eedf6068
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
120 addition
and
4 deletion
+120
-4
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/StatisticPersonForMonthFactory.java
...emble/control/factory/StatisticPersonForMonthFactory.java
+34
-0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/ActionShowStForPersonInUnitSubNested.java
...ndancestatistic/ActionShowStForPersonInUnitSubNested.java
+10
-1
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/BaseAction.java
...ssemble/control/jaxrs/attendancestatistic/BaseAction.java
+56
-0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java
...emble/control/service/AttendanceDetailAnalyseService.java
+3
-2
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticService.java
.../assemble/control/service/AttendanceStatisticService.java
+7
-0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticServiceAdv.java
...semble/control/service/AttendanceStatisticServiceAdv.java
+9
-0
o2server/x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceEmployeeConfig.java
...ava/com/x/attendance/entity/AttendanceEmployeeConfig.java
+1
-1
未找到文件。
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/StatisticPersonForMonthFactory.java
浏览文件 @
27b76172
...
...
@@ -21,6 +21,7 @@ import com.x.attendance.entity.StatisticPersonForMonth_;
import
com.x.base.core.project.exception.ExceptionWhen
;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.tools.ListTools
;
public
class
StatisticPersonForMonthFactory
extends
AbstractFactory
{
...
...
@@ -109,6 +110,39 @@ public class StatisticPersonForMonthFactory extends AbstractFactory {
return
em
.
createQuery
(
cq
.
where
(
p
)
).
setMaxResults
(
60
).
getResultList
();
}
//排除不需要的组织和人员
public
List
<
String
>
listPersonForMonthByUnitYearMonthAndUn
(
List
<
String
>
unitNameList
,
List
<
String
>
unUnitNameList
,
List
<
String
>
personNameList
,
String
year
,
String
month
)
throws
Exception
{
if
(
unitNameList
==
null
||
unitNameList
.
size
()
==
0
){
logger
.
error
(
new
UnitNamesEmptyException
()
);
return
null
;
}
EntityManager
em
=
this
.
entityManagerContainer
().
get
(
StatisticPersonForMonth
.
class
);
CriteriaBuilder
cb
=
em
.
getCriteriaBuilder
();
CriteriaQuery
<
String
>
cq
=
cb
.
createQuery
(
String
.
class
);
Root
<
StatisticPersonForMonth
>
root
=
cq
.
from
(
StatisticPersonForMonth
.
class
);
Predicate
p
=
root
.
get
(
StatisticPersonForMonth_
.
unitName
).
in
(
unitNameList
);
if
(
ListTools
.
isNotEmpty
(
unUnitNameList
)){
p
=
cb
.
and
(
p
,
cb
.
isNotMember
(
root
.
get
(
StatisticPersonForMonth_
.
unitName
),
cb
.
literal
(
unUnitNameList
)));
}
if
(
ListTools
.
isNotEmpty
(
personNameList
)){
p
=
cb
.
and
(
p
,
cb
.
isNotMember
(
root
.
get
(
StatisticPersonForMonth_
.
employeeName
),
cb
.
literal
(
personNameList
)));
}
if
(
year
==
null
||
year
.
isEmpty
()
){
logger
.
error
(
new
StatisticYearEmptyException
()
);
}
else
{
p
=
cb
.
and
(
p
,
cb
.
equal
(
root
.
get
(
StatisticPersonForMonth_
.
statisticYear
),
year
)
);
}
if
(
month
==
null
||
month
.
isEmpty
()
){
logger
.
error
(
new
StatisticMonthEmptyException
()
);
}
else
{
p
=
cb
.
and
(
p
,
cb
.
equal
(
root
.
get
(
StatisticPersonForMonth_
.
statisticMonth
),
month
));
}
cq
.
select
(
root
.
get
(
StatisticPersonForMonth_
.
id
));
return
em
.
createQuery
(
cq
.
where
(
p
)
).
setMaxResults
(
60
).
getResultList
();
}
/**
* 查询下一页的信息数据
* @param id
...
...
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/ActionShowStForPersonInUnitSubNested.java
浏览文件 @
27b76172
...
...
@@ -22,6 +22,8 @@ public class ActionShowStForPersonInUnitSubNested extends BaseAction {
List
<
Wo
>
wraps
=
null
;
List
<
String
>
ids
=
null
;
List
<
String
>
unitNameList
=
new
ArrayList
<
String
>();
List
<
String
>
unUnitNameList
=
new
ArrayList
<
String
>();
List
<
String
>
personNameList
=
new
ArrayList
<
String
>();
List
<
StatisticPersonForMonth
>
statisticPersonForMonth_list
=
null
;
Boolean
check
=
true
;
if
(
"(0)"
.
equals
(
year
)
)
{
...
...
@@ -52,10 +54,17 @@ public class ActionShowStForPersonInUnitSubNested extends BaseAction {
unitNameList
=
new
ArrayList
<>();
}
unitNameList
.
add
(
name
);
unUnitNameList
=
getUnUnitNameList
();
personNameList
=
getUnPersonNameList
();
System
.
out
.
println
(
"ActionShowStForPersonInUnitSubNested____unitNameList="
+
unitNameList
);
System
.
out
.
println
(
"ActionShowStForPersonInUnitSubNested____unUnitNameList="
+
unUnitNameList
);
System
.
out
.
println
(
"ActionShowStForPersonInUnitSubNested____personNameList="
+
personNameList
);
}
if
(
check
){
try
{
ids
=
attendanceStatisticServiceAdv
.
listPersonForMonthByUnitYearAndMonth
(
unitNameList
,
year
,
month
);
//ids = attendanceStatisticServiceAdv.listPersonForMonthByUnitYearAndMonth( unitNameList, year, month);
ids
=
attendanceStatisticServiceAdv
.
listPersonForMonthByUnitYearMonthAndUn
(
unitNameList
,
unUnitNameList
,
personNameList
,
year
,
month
);
System
.
out
.
println
(
"ActionShowStForPersonInUnitSubNested____ids="
+
ids
.
size
());
}
catch
(
Exception
e
)
{
check
=
false
;
Exception
exception
=
new
ExceptionAttendanceStatisticProcess
(
e
,
...
...
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/jaxrs/attendancestatistic/BaseAction.java
浏览文件 @
27b76172
...
...
@@ -5,19 +5,23 @@ import java.util.List;
import
org.apache.commons.lang3.StringUtils
;
import
com.x.attendance.assemble.control.service.AttendanceEmployeeConfigServiceAdv
;
import
com.x.attendance.assemble.control.service.AttendanceStatisticServiceAdv
;
import
com.x.attendance.assemble.control.service.UserManagerService
;
import
com.x.attendance.entity.AttendanceEmployeeConfig
;
import
com.x.base.core.container.EntityManagerContainer
;
import
com.x.base.core.container.factory.EntityManagerContainerFactory
;
import
com.x.base.core.project.jaxrs.StandardJaxrsAction
;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.tools.ListTools
;
public
class
BaseAction
extends
StandardJaxrsAction
{
protected
Logger
logger
=
LoggerFactory
.
getLogger
(
BaseAction
.
class
);
protected
UserManagerService
userManagerService
=
new
UserManagerService
();
protected
AttendanceStatisticServiceAdv
attendanceStatisticServiceAdv
=
new
AttendanceStatisticServiceAdv
();
protected
AttendanceEmployeeConfigServiceAdv
attendanceEmployeeConfigServiceAdv
=
new
AttendanceEmployeeConfigServiceAdv
();
// 根据组织递归查询下级组织
protected
List
<
String
>
getUnitNameList
(
String
unitName
,
List
<
String
>
unitNameList
)
throws
Exception
{
...
...
@@ -107,5 +111,57 @@ public class BaseAction extends StandardJaxrsAction {
}
return
unitNameList
;
}
/**
* 获取不需要考勤的组织
* @return
* @throws Exception
*/
protected
List
<
String
>
getUnUnitNameList
()
throws
Exception
{
List
<
String
>
unUnitNameList
=
new
ArrayList
<
String
>();
List
<
AttendanceEmployeeConfig
>
attendanceEmployeeConfigs
=
attendanceEmployeeConfigServiceAdv
.
listByConfigType
(
"NOTREQUIRED"
);
if
(
ListTools
.
isNotEmpty
(
attendanceEmployeeConfigs
)){
for
(
AttendanceEmployeeConfig
attendanceEmployeeConfig
:
attendanceEmployeeConfigs
)
{
String
unitName
=
attendanceEmployeeConfig
.
getUnitName
();
String
employeeName
=
attendanceEmployeeConfig
.
getEmployeeName
();
if
(
StringUtils
.
isEmpty
(
employeeName
)
&&
StringUtils
.
isNotEmpty
(
unitName
)){
unUnitNameList
.
add
(
unitName
);
List
<
String
>
tempUnitNameList
=
userManagerService
.
listSubUnitNameWithParent
(
unitName
);
if
(
ListTools
.
isNotEmpty
(
tempUnitNameList
)){
for
(
String
tempUnit:
tempUnitNameList
){
if
(!
ListTools
.
contains
(
unUnitNameList
,
tempUnit
)){
unUnitNameList
.
add
(
tempUnit
);
}
}
}
}
}
}
return
unUnitNameList
;
}
/**
* 获取不需要考勤的人员
* @return
* @throws Exception
*/
protected
List
<
String
>
getUnPersonNameList
()
throws
Exception
{
List
<
String
>
personNameList
=
new
ArrayList
<
String
>();
List
<
AttendanceEmployeeConfig
>
attendanceEmployeeConfigs
=
attendanceEmployeeConfigServiceAdv
.
listByConfigType
(
"NOTREQUIRED"
);
if
(
ListTools
.
isNotEmpty
(
attendanceEmployeeConfigs
)){
for
(
AttendanceEmployeeConfig
attendanceEmployeeConfig
:
attendanceEmployeeConfigs
)
{
String
employeeName
=
attendanceEmployeeConfig
.
getEmployeeName
();
if
(
StringUtils
.
isNotEmpty
(
employeeName
)
&&
!
ListTools
.
contains
(
personNameList
,
employeeName
)){
personNameList
.
add
(
employeeName
);
}
}
}
return
personNameList
;
}
}
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java
浏览文件 @
27b76172
...
...
@@ -310,11 +310,12 @@ public class AttendanceDetailAnalyseService {
if
(
check
){
if
(
scheduleSetting
!=
null
){
detail
.
setTopUnitName
(
scheduleSetting
.
getTopUnitName
()
);
if
(
StringUtils
.
isNotEmpty
(
scheduleSetting
.
getUnitName
()
)
&&
!
"*"
.
equals
(
scheduleSetting
.
getUnitName
()
))
{
/*
if( StringUtils.isNotEmpty( scheduleSetting.getUnitName() ) && !"*".equals( scheduleSetting.getUnitName() )) {
detail.setUnitName( scheduleSetting.getUnitName() );
}else {
detail.setUnitName( userManagerService.getUnitNameWithPersonName( detail.getEmpName() ) );
}
}*/
detail
.
setUnitName
(
userManagerService
.
getUnitNameWithPersonName
(
detail
.
getEmpName
()
)
);
detail
.
setOnWorkTime
(
scheduleSetting
.
getOnDutyTime
()
);
detail
.
setMiddayRestStartTime
(
scheduleSetting
.
getMiddayRestStartTime
()
);
detail
.
setMiddayRestEndTime
(
scheduleSetting
.
getMiddayRestEndTime
()
);
...
...
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticService.java
浏览文件 @
27b76172
...
...
@@ -692,6 +692,13 @@ public class AttendanceStatisticService {
Business
business
=
new
Business
(
emc
);
return
business
.
getStatisticPersonForMonthFactory
().
listByUnitYearAndMonth
(
unitNameList
,
year
,
month
);
}
//排除不需要的组织和人员
public
List
<
String
>
listPersonForMonthByUnitYearMonthAndUn
(
EntityManagerContainer
emc
,
List
<
String
>
unitNameList
,
List
<
String
>
unUnitNameList
,
List
<
String
>
personNameList
,
String
year
,
String
month
)
throws
Exception
{
Business
business
=
new
Business
(
emc
);
return
business
.
getStatisticPersonForMonthFactory
().
listPersonForMonthByUnitYearMonthAndUn
(
unitNameList
,
unUnitNameList
,
personNameList
,
year
,
month
);
}
public
List
<
String
>
listUnitForMonthByUnitYearAndMonth
(
EntityManagerContainer
emc
,
List
<
String
>
unitNameList
,
String
year
,
String
month
)
throws
Exception
{
Business
business
=
new
Business
(
emc
);
return
business
.
getStatisticUnitForMonthFactory
().
listByUnitYearAndMonth
(
unitNameList
,
year
,
month
);
...
...
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceStatisticServiceAdv.java
浏览文件 @
27b76172
...
...
@@ -236,6 +236,15 @@ public class AttendanceStatisticServiceAdv {
throw
e
;
}
}
//排除不需要的组织和人员
public
List
<
String
>
listPersonForMonthByUnitYearMonthAndUn
(
List
<
String
>
unitNameList
,
List
<
String
>
unUnitNameList
,
List
<
String
>
personNameList
,
String
year
,
String
month
)
throws
Exception
{
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
return
attendanceStatisticService
.
listPersonForMonthByUnitYearMonthAndUn
(
emc
,
unitNameList
,
unUnitNameList
,
personNameList
,
year
,
month
);
}
catch
(
Exception
e
)
{
throw
e
;
}
}
public
List
<
String
>
listUnitForMonthByUnitYearAndMonth
(
List
<
String
>
unitNameList
,
String
year
,
String
month
)
throws
Exception
{
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
...
...
o2server/x_attendance_core_entity/src/main/java/com/x/attendance/entity/AttendanceEmployeeConfig.java
浏览文件 @
27b76172
...
...
@@ -81,7 +81,7 @@ public class AttendanceEmployeeConfig extends SliceJpaObject {
public
static
final
String
employeeName_FIELDNAME
=
"employeeName"
;
@FieldDescribe
(
"员工姓名distinguishedName"
)
@Column
(
length
=
AbstractPersistenceProperties
.
organization_name_length
,
name
=
ColumnNamePrefix
+
employeeName_FIELDNAME
)
@CheckPersist
(
allowEmpty
=
fals
e
)
@CheckPersist
(
allowEmpty
=
tru
e
)
private
String
employeeName
=
""
;
public
static
final
String
employeeNumber_FIELDNAME
=
"employeeNumber"
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录