Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
W
work_service
Project
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
licc
work_service
Commits
82f0b560
Commit
82f0b560
authored
Mar 15, 2021
by
cq990612
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化代码结构
parent
58d94ca6
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
196 additions
and
23 deletions
+196
-23
WorkTimeOrderMapper.java
...rc/main/java/cn/wisenergy/mapper/WorkTimeOrderMapper.java
+3
-4
WorkTimeOrderMapper.xml
...-mapper/src/main/resources/mapper/WorkTimeOrderMapper.xml
+33
-0
DeptUserCollectDto.java
.../main/java/cn/wisenergy/model/dto/DeptUserCollectDto.java
+19
-0
DeptUserDto.java
...del/src/main/java/cn/wisenergy/model/dto/DeptUserDto.java
+4
-0
UserDto.java
...y-model/src/main/java/cn/wisenergy/model/dto/UserDto.java
+2
-0
LevelEnum.java
...del/src/main/java/cn/wisenergy/model/enums/LevelEnum.java
+2
-1
WorkTimeOrderService.java
.../main/java/cn/wisenergy/service/WorkTimeOrderService.java
+6
-2
WorkTimeOrderServiceImpl.java
...a/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
+99
-8
UserRoleLevelUtils.java
...n/java/cn/wisenergy/service/utils/UserRoleLevelUtils.java
+17
-4
WorkTimeOrderController.java
...rgy/web/admin/controller/app/WorkTimeOrderController.java
+11
-4
No files found.
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkTimeOrderMapper.java
View file @
82f0b560
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkTimeOrder
;
import
cn.wisenergy.model.dto.DayWorkTimeAndType
;
import
cn.wisenergy.model.dto.MonthlyWorkingHoursStatistics
;
import
cn.wisenergy.model.dto.UserWorkTimeStatisticsByProject
;
import
cn.wisenergy.model.dto.WorkTimeAndCostCollect
;
import
cn.wisenergy.model.dto.*
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
...
...
@@ -108,4 +105,6 @@ public interface WorkTimeOrderMapper extends BaseMapper<WorkTimeOrder> {
List
<
UserWorkTimeStatisticsByProject
>
selectListByType
(
Map
<
String
,
Object
>
map
);
List
<
DeptUserCollectDto
>
getDeptNotOrderInfo
(
@Param
(
"userId"
)
Integer
userId
,
@Param
(
"depts"
)
List
<
Integer
>
depts
,
@Param
(
"startDate"
)
Date
startDate
,
@Param
(
"endDate"
)
Date
endDate
);
}
wisenergy-mapper/src/main/resources/mapper/WorkTimeOrderMapper.xml
View file @
82f0b560
...
...
@@ -411,4 +411,37 @@
)
GROUP BY
<if
test=
"isAll"
>
u.id,u.`name`,
</if>
t.type, t.is_overtime
</select>
<resultMap
id=
"DeptUserCollectDto"
type=
"cn.wisenergy.model.dto.DeptUserCollectDto"
>
<result
property=
"userId"
column=
"user_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"deptId"
column=
"dept_id"
/>
<result
property=
"deptName"
column=
"dept_name"
/>
<collection
property=
"workDay"
javaType=
"ArrayList"
ofType =
"java.util.Date"
>
<result
column=
"work_day"
/>
</collection>
</resultMap>
<select
id=
"getDeptNotOrderInfo"
resultMap=
"DeptUserCollectDto"
>
select d.id as 'dept_id' ,d.dept_name,u.id as 'user_id',u.name as 'user_name',c.work_day
from work_user u LEFT JOIN work_collect c ON u.id = c.user_id LEFT JOIN work_dept d on u.dept_id = d.id
<where>
u.submit_order = 1 and u.`status` = 1 and c.`status` !=3
<if
test=
" startDate !=null and endDate !=null"
>
and c.work_day between #{startDate} and #{endDate}
</if>
<if
test=
"depts !=null and depts.size()>0"
>
AND d.id in
<foreach
collection=
"depts"
item=
"dept"
open=
"("
close=
")"
separator=
","
>
#{dept}
</foreach>
</if>
</where>
ORDER BY d.sort,u.name
</select>
</mapper>
wisenergy-model/src/main/java/cn/wisenergy/model/dto/DeptUserCollectDto.java
0 → 100644
View file @
82f0b560
package
cn
.
wisenergy
.
model
.
dto
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
public
class
DeptUserCollectDto
{
private
Integer
userId
;
private
String
userName
;
private
Integer
deptId
;
private
String
deptName
;
List
<
Date
>
workDay
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/DeptUserDto.java
View file @
82f0b560
package
cn
.
wisenergy
.
model
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -15,5 +17,7 @@ public class DeptUserDto {
private
String
deptName
;
private
Date
date
;
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd"
)
private
List
<
UserDto
>
userDtos
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/UserDto.java
View file @
82f0b560
...
...
@@ -12,4 +12,6 @@ public class UserDto {
private
Integer
id
;
private
String
name
;
private
Integer
notWorkDays
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/enums/LevelEnum.java
View file @
82f0b560
...
...
@@ -11,7 +11,8 @@ public enum LevelEnum {
PROJECT_MANAGER
(
"项目/商机管理"
),
TIMEEXPORT
(
"工时导出"
),
SYSTEMSETTINGS
(
"系统设置"
),
ACCOUNTMANAGEMENT
(
"账号管理"
)
ACCOUNTMANAGEMENT
(
"账号管理"
),
MISSING
(
"填报缺失"
),
;
private
String
LevelName
;
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/WorkTimeOrderService.java
View file @
82f0b560
...
...
@@ -2,7 +2,6 @@ package cn.wisenergy.service;
import
cn.wisenergy.model.app.WorkTimeOrder
;
import
cn.wisenergy.model.dto.*
;
import
cn.wisenergy.model.vo.ManagerOrderVo
;
import
com.github.pagehelper.PageInfo
;
import
java.util.Date
;
...
...
@@ -120,5 +119,10 @@ public interface WorkTimeOrderService {
*/
int
statusYes
(
Integer
userId
,
Date
workDay
);
/**
* 获取本部门 填报缺失信息
* @param userId
* @return
*/
List
<
DeptUserDto
>
getDeptNotOrderInfo
(
Integer
userId
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
View file @
82f0b560
...
...
@@ -73,11 +73,14 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
private
WorkCollectService
workCollectService
;
@Autowired
private
Work
UserDeptService
workUserDept
Service
;
private
Work
CentreService
workCentre
Service
;
@Autowired
private
WorkUserProjectService
workUserProjectService
;
@Autowired
private
StatisticsService
statisticsService
;
// 工单状态
...
...
@@ -825,15 +828,15 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
if
(
null
==
projectId
&&
null
==
type
)
{
List
<
ProjectManagerDto
>
projectManagerDto
=
getProjectManagerDto
(
user
,
workTypes
);
if
(!
CollectionUtils
.
isEmpty
(
projectManagerDto
))
{
projectManagerDto
.
forEach
(
project
->{
projectManagerDto
.
forEach
(
project
->
{
if
(
null
!=
project
.
getId
())
{
projectIds
.
add
(
project
.
getId
());
}
else
{
types
.
add
(
project
.
getType
());
}
}
);
});
}
}
else
{
}
else
{
if
(
null
!=
projectId
)
{
projectIds
.
add
(
projectId
);
}
...
...
@@ -891,7 +894,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
}
private
String
getTypeName
(
Integer
type
,
List
<
WorkType
>
workTypes
)
{
if
(!
CollectionUtils
.
isEmpty
(
workTypes
))
{
for
(
WorkType
value
:
workTypes
)
{
...
...
@@ -926,11 +928,100 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
}
/**
*
功能:获取工单变更分页
*
获取本部门 填报缺失信息
*
* @param
managerOrderVo 分页套件
* @return
PageInfo
* @param
userId
* @return
*/
@Override
public
List
<
DeptUserDto
>
getDeptNotOrderInfo
(
Integer
userId
)
{
log
.
info
(
"WorkOrderServiceImpl[]getDeptNotOrderInfo[]input.param.userId"
+
userId
);
if
(
null
==
userId
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkUser
user
=
workUserService
.
getById
(
userId
);
List
<
Integer
>
ranks
=
UserRoleLevelUtils
.
getRankByUserAndLevelName
(
userId
,
LevelEnum
.
PROJECT_MANAGER
.
getLevelName
());
if
(
CollectionUtils
.
isEmpty
(
ranks
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
Integer
rankMax
=
null
;
for
(
Integer
rank
:
ranks
)
{
rankMax
=
rankMax
==
null
?
rank
:
rank
>
rankMax
?
rank
:
rankMax
;
}
if
(
rankMax
==
null
)
{
return
null
;
}
List
<
DeptUserCollectDto
>
deptNotOrderInfo
=
new
ArrayList
<>();
List
<
Integer
>
deptIds
=
new
ArrayList
<>();
WorkSubmitAdopt
adopt
=
workSubmitAdoptService
.
getById
(
1
);
Integer
submitTime
=
adopt
.
getSubmitTime
();
Date
date
=
new
Date
();
Date
startDate
=
null
;
Date
endDate
=
null
;
if
(
DateUtil
.
getDay
(
date
)
<=
submitTime
)
{
date
.
setMonth
(
DateUtil
.
getMonth
(
date
)
-
1
);
startDate
=
DateUtil
.
getFirstDayOfMonth
(
date
);
endDate
=
DateUtil
.
getLastDayByMonth2
(
date
);
}
else
{
startDate
=
DateUtil
.
getFirstDayOfMonth
(
date
);
endDate
=
date
;
}
boolean
flag
=
DateUtil
.
isYearAndMonthEqual
(
date
,
new
Date
());
List
<
Date
>
workDays
=
statisticsService
.
currentMonthWorkDays
(
date
,
flag
);
List
<
DeptUserDto
>
deptUserDtos
=
new
ArrayList
<>();
if
(
LevelRankEnum
.
CENTRAL_LEVEL
.
getRank
().
equals
(
rankMax
))
{
List
<
WorkDept
>
deptByCentreManager
=
workCentreService
.
getDeptByCentreManager
(
user
);
for
(
WorkDept
workDept
:
deptByCentreManager
)
{
DeptUserDto
deptUserDto
=
new
DeptUserDto
();
deptUserDto
.
setDeptId
(
workDept
.
getId
());
deptUserDto
.
setDeptName
(
workDept
.
getDeptName
());
deptUserDto
.
setDate
(
date
);
deptUserDtos
.
add
(
deptUserDto
);
}
if
(
CollectionUtils
.
isEmpty
(
deptByCentreManager
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_FOUND
);
}
deptByCentreManager
.
forEach
(
dept
->
deptIds
.
add
(
dept
.
getId
()));
deptNotOrderInfo
=
workTimeOrderMapper
.
getDeptNotOrderInfo
(
userId
,
deptIds
,
startDate
,
endDate
);
}
if
(
LevelRankEnum
.
DEPARTMENT_LEVEL
.
getRank
().
equals
(
rankMax
))
{
deptIds
.
add
(
user
.
getDeptId
());
deptNotOrderInfo
=
workTimeOrderMapper
.
getDeptNotOrderInfo
(
userId
,
deptIds
,
startDate
,
endDate
);
DeptUserDto
deptUserDto
=
new
DeptUserDto
();
deptUserDto
.
setDeptId
(
deptNotOrderInfo
.
get
(
0
).
getDeptId
());
deptUserDto
.
setDeptName
(
deptNotOrderInfo
.
get
(
0
).
getDeptName
());
deptUserDto
.
setDate
(
date
);
deptUserDtos
.
add
(
deptUserDto
);
}
for
(
DeptUserDto
deptUserDto
:
deptUserDtos
)
{
List
<
UserDto
>
userDtos
=
new
ArrayList
<>();
for
(
DeptUserCollectDto
deptUserCollectDto
:
deptNotOrderInfo
)
{
UserDto
userDto
=
new
UserDto
();
List
<
Date
>
workDays1
=
new
ArrayList
<>(
workDays
);
userDto
.
setId
(
deptUserCollectDto
.
getUserId
());
userDto
.
setName
(
deptUserCollectDto
.
getUserName
());
workDays1
.
removeAll
(
deptUserCollectDto
.
getWorkDay
());
userDto
.
setNotWorkDays
(
workDays1
.
size
());
if
(
deptUserCollectDto
.
getDeptId
().
equals
(
deptUserDto
.
getDeptId
()))
{
userDtos
.
add
(
userDto
);
}
}
deptUserDto
.
setUserDtos
(
userDtos
);
}
System
.
out
.
println
(
deptNotOrderInfo
);
return
deptUserDtos
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/utils/UserRoleLevelUtils.java
View file @
82f0b560
...
...
@@ -16,10 +16,7 @@ import org.springframework.stereotype.Component;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.PostConstruct
;
import
java.util.Comparator
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.*
;
@Component
public
class
UserRoleLevelUtils
{
...
...
@@ -183,6 +180,22 @@ public class UserRoleLevelUtils {
return
false
;
}
public
static
List
<
Integer
>
getRankByUserAndLevelName
(
Integer
userId
,
String
levelName
)
{
if
(
null
==
userId
||
StringUtils
.
isBlank
(
levelName
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
UserRoleLevelDto
>
roleUserLevel
=
UserRoleLevelUtils
.
getRoleUserLevel
(
userId
);
if
(
CollectionUtils
.
isEmpty
(
roleUserLevel
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
List
<
Integer
>
ranks
=
new
ArrayList
<>();
for
(
UserRoleLevelDto
userRoleLevelDto
:
roleUserLevel
)
{
if
(
levelName
.
equals
(
userRoleLevelDto
.
getLevelName
()))
{
ranks
.
add
(
userRoleLevelDto
.
getRank
());
}
}
return
ranks
;
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkTimeOrderController.java
View file @
82f0b560
...
...
@@ -5,10 +5,7 @@ import cn.wisenergy.common.utils.exception.CustomException;
import
cn.wisenergy.common.utils.exception.RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.Result
;
import
cn.wisenergy.model.app.WorkTimeOrder
;
import
cn.wisenergy.model.dto.AppletsPendApprovalDto
;
import
cn.wisenergy.model.dto.CreateWorkOrderDto
;
import
cn.wisenergy.model.dto.ProjectsDto
;
import
cn.wisenergy.model.dto.WorkTimeOrderDto
;
import
cn.wisenergy.model.dto.*
;
import
cn.wisenergy.service.WorkTimeOrderService
;
import
cn.wisenergy.web.admin.controller.common.BaseController
;
import
com.github.pagehelper.PageInfo
;
...
...
@@ -161,4 +158,14 @@ public class WorkTimeOrderController extends BaseController {
return
getResult
(
workTimeOrderDtos
);
}
@ApiOperation
(
value
=
"查询工时缺失"
,
notes
=
"查询工时缺失"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"管理员Id"
,
dataType
=
"int"
,
required
=
true
)
@GetMapping
(
value
=
"/getDeptNotOrderInfo"
)
public
Result
getDeptNotOrderInfo
(
Integer
userId
)
{
log
.
info
(
"WorkTimeOrderController[]getDeptNotOrderInfo[]input.param.userId:{}"
+
userId
);
List
<
DeptUserDto
>
deptUserDtos
=
workTimeOrderService
.
getDeptNotOrderInfo
(
userId
);
return
getResult
(
deptUserDtos
);
}
}
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