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
583d2966
Commit
583d2966
authored
Jan 22, 2021
by
nie'hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工时统计初成
parent
641f02bd
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
314 additions
and
53 deletions
+314
-53
BASE_RESP_CODE_ENUM.java
...wisenergy/common/utils/exception/BASE_RESP_CODE_ENUM.java
+2
-1
WorkCentreMapper.java
...r/src/main/java/cn/wisenergy/mapper/WorkCentreMapper.java
+10
-0
WorkDeptMapper.java
...per/src/main/java/cn/wisenergy/mapper/WorkDeptMapper.java
+3
-2
WorkTimeOrderMapper.java
...rc/main/java/cn/wisenergy/mapper/WorkTimeOrderMapper.java
+6
-3
WorkCentreMapper.xml
...rgy-mapper/src/main/resources/mapper/WorkCentreMapper.xml
+23
-0
WorkDeptMapper.xml
...nergy-mapper/src/main/resources/mapper/WorkDeptMapper.xml
+8
-4
WorkProjectMapper.xml
...gy-mapper/src/main/resources/mapper/WorkProjectMapper.xml
+6
-0
WorkTimeOrderMapper.xml
...-mapper/src/main/resources/mapper/WorkTimeOrderMapper.xml
+18
-3
WorkCentre.java
...odel/src/main/java/cn/wisenergy/model/app/WorkCentre.java
+42
-0
WorkDept.java
...-model/src/main/java/cn/wisenergy/model/app/WorkDept.java
+3
-0
MonthlyWorkingHoursStatistics.java
...cn/wisenergy/model/dto/MonthlyWorkingHoursStatistics.java
+2
-2
WorkTimeAndCostCollect.java
...n/java/cn/wisenergy/model/dto/WorkTimeAndCostCollect.java
+57
-0
ProjectTypeEnum.java
...c/main/java/cn/wisenergy/model/enums/ProjectTypeEnum.java
+2
-2
StatisticsService.java
...src/main/java/cn/wisenergy/service/StatisticsService.java
+9
-1
WorkProjectService.java
...rc/main/java/cn/wisenergy/service/WorkProjectService.java
+5
-2
WorkUserService.java
...e/src/main/java/cn/wisenergy/service/WorkUserService.java
+1
-1
StatisticsServiceImpl.java
...java/cn/wisenergy/service/impl/StatisticsServiceImpl.java
+42
-19
WorkDeptServiceImpl.java
...n/java/cn/wisenergy/service/impl/WorkDeptServiceImpl.java
+8
-3
WorkProjectServiceImpl.java
...ava/cn/wisenergy/service/impl/WorkProjectServiceImpl.java
+40
-5
StatisticsController.java
...energy/web/admin/controller/app/StatisticsController.java
+16
-1
WorkUserController.java
...isenergy/web/admin/controller/app/WorkUserController.java
+11
-4
No files found.
wisenergy-common/src/main/java/cn/wisenergy/common/utils/exception/BASE_RESP_CODE_ENUM.java
View file @
583d2966
...
...
@@ -53,7 +53,8 @@ public enum BASE_RESP_CODE_ENUM {
DEPT_IS_NULL
(
"631"
,
"该部门不存在"
),
MANAGER_NOT_PROJECT
(
"632"
,
"该管理没有可管理的项目"
),
DEPT_NOT_FOUND
(
"633"
,
"部门信息未找到"
),
DATE_IS_ERROR
(
"634"
,
"时间不匹配"
);
DATE_IS_ERROR
(
"634"
,
"时间不匹配"
),
CENTRE_NOT_FOUND
(
"635"
,
"中心信息未找到"
);
/**
* 错误编码
*/
...
...
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkCentreMapper.java
0 → 100644
View file @
583d2966
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkCentre
;
import
cn.wisenergy.model.app.WorkCollect
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
WorkCentreMapper
extends
BaseMapper
<
WorkCollect
>
{
WorkCentre
getByManagerId
(
Integer
userId
);
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkDeptMapper.java
View file @
583d2966
...
...
@@ -4,10 +4,11 @@ import cn.wisenergy.model.app.WorkDept;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
*
Mapper 接口
* Mapper 接口
* </p>
*
* @author chenqi
...
...
@@ -15,5 +16,5 @@ import java.util.List;
*/
public
interface
WorkDeptMapper
extends
BaseMapper
<
WorkDept
>
{
List
<
WorkDept
>
getDeptBy
Id
(
Integer
deptId
);
List
<
WorkDept
>
getDeptBy
Condition
(
Map
<
String
,
Object
>
map
);
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkTimeOrderMapper.java
View file @
583d2966
...
...
@@ -3,12 +3,13 @@ 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.WorkTimeAndCostCollect
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
...
...
@@ -35,7 +36,7 @@ public interface WorkTimeOrderMapper extends BaseMapper<WorkTimeOrder> {
* @param userId
* @return
*/
MonthlyWorkingHoursStatistics
collect
ByProjectType
(
Integer
userId
,
Integer
projectType
,
String
currentMonthFirstDay
);
MonthlyWorkingHoursStatistics
statistics
ByProjectType
(
Integer
userId
,
Integer
projectType
,
String
currentMonthFirstDay
);
/**
*
...
...
@@ -52,5 +53,7 @@ public interface WorkTimeOrderMapper extends BaseMapper<WorkTimeOrder> {
* @param map
* @return
*/
Integer
getCountByCondition
(
HashMap
<
String
,
Object
>
map
);
Integer
getCountByCondition
(
Map
<
String
,
Object
>
map
);
List
<
WorkTimeAndCostCollect
>
getWorkTimeAndCostCollect
(
List
<
Integer
>
projectIds
,
Date
firstDayOfMonth
);
}
wisenergy-mapper/src/main/resources/mapper/WorkCentreMapper.xml
0 → 100644
View file @
583d2966
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.wisenergy.mapper.WorkCentreMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkCentre"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"centreName"
property=
"centreName"
/>
<result
column=
"centreManagerId"
property=
"centre_manager_id"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<sql
id=
"vals"
>
id, centre_name, centre_manager_id, create_time, modify_time
</sql>
<select
id=
"getById"
resultMap=
"BaseResultMap"
parameterType=
"integer"
>
select
<include
refid=
"vals"
/>
from work_centre
where centre_manager_id = #{userId}
</select>
</mapper>
\ No newline at end of file
wisenergy-mapper/src/main/resources/mapper/WorkDeptMapper.xml
View file @
583d2966
...
...
@@ -7,6 +7,8 @@
<id
column=
"id"
property=
"id"
/>
<result
column=
"dept_name"
property=
"deptName"
/>
<result
column=
"oa_dept_id"
property=
"oaDeptId"
/>
<result
column=
"centre_id"
property=
"centreId"
/>
<result
column=
"dept_manager_id"
property=
"deptManagerId"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
...
...
@@ -27,6 +29,8 @@
<!-- 通用查询结果列 -->
<sql
id=
"criteria"
>
<if
test=
"deptName != null"
>
AND dept_name = #{deptName}
</if>
<if
test=
"centreId != null"
>
AND centre_id = #{centreId}
</if>
<if
test=
"managerId != null"
>
AND manager_id = #{managerId}
</if>
<if
test=
"createTime != null"
>
AND create_time = #{createTime}
</if>
<if
test=
"modifyTime != null"
>
AND modify_time = #{modifyTime}
</if>
</sql>
...
...
@@ -36,12 +40,12 @@
id, oa_dept_id, dept_name, create_time, modify_time
</sql>
<select
id=
"getDeptBy
Id
"
resultMap=
"BaseResultMap"
parameterType=
"integer"
>
<select
id=
"getDeptBy
Condition
"
resultMap=
"BaseResultMap"
parameterType=
"integer"
>
select
<include
refid=
"cols_all"
/>
from
<include
refid=
"table"
/>
<if
test=
"deptId != null"
>
where id = #{deptId}
</if
>
<where
>
<include
refid=
"criteria"
/>
</where
>
</select>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkProjectMapper.xml
View file @
583d2966
...
...
@@ -52,6 +52,12 @@
<where>
<include
refid=
"criteria"
/>
</where>
<if
test=
"deptIds != null"
>
AND dept_id IN
<foreach
collection=
"deptIds"
item=
"deptId"
separator=
","
open=
"("
close=
")"
>
#{deptId}
</foreach>
</if>
</select>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkTimeOrderMapper.xml
View file @
583d2966
...
...
@@ -22,6 +22,7 @@
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"vals"
>
#{userId},#{userName},#{projectId},#{projectName},#{deptId},#{workTime},#{workDay},#{status},#{reviewerId},#{des},#{reason},#{type},#{isOvertime},now(),now()
...
...
@@ -56,7 +57,6 @@
</resultMap>
<resultMap
id=
"monthlyWorkHourStatistics"
type=
"cn.wisenergy.model.dto.MonthlyWorkingHoursStatistics"
>
<result
property=
"projectType"
column=
"type"
/>
<result
property=
"count"
column=
"count(1)"
/>
<result
property=
"workTime"
column=
"sum(work_time)"
/>
</resultMap>
...
...
@@ -83,6 +83,7 @@
#{id}
</foreach>
</update>
<update
id=
"updateStatusById"
>
UPDATE
<include
refid=
"table"
/>
...
...
@@ -133,8 +134,8 @@
work_id, user_id, user_name, project_id, project_name, dept_id, work_time, work_day, status, reviewer_id, des, reason, type, is_overtime, create_time, modify_time
</sql>
<select
id=
"
collect
ByProjectType"
resultMap=
"monthlyWorkHourStatistics"
>
select
type,
count(1),sum(work_time)
<select
id=
"
statistics
ByProjectType"
resultMap=
"monthlyWorkHourStatistics"
>
select count(1),sum(work_time)
from
<include
refid=
"table"
/>
where user_id = #{userId} AND type = #{projectType} AND work_day >=#{currentMonthFirstDay}
...
...
@@ -174,4 +175,18 @@
</if>
</where>
</select>
<select
id=
"getWorkTimeAndCostCollect"
resultType=
"cn.wisenergy.model.dto.WorkTimeAndCostCollect"
parameterType=
"integer"
>
select case when `type`= 1 then '商机' when `type`= 0 then '项目' end AS type,dept_id, project_name,MIN(work_day) AS firstTime,MAX(work_day) AS lastTime,SUM(work_time)/8 AS totalTime,(SUM(work_time))/8*10 AS cost
from
<include
refid=
"table"
/>
where status in (2,5) and project_id in
<foreach
collection=
"projectIds"
item=
"projectId"
open=
"("
close=
")"
separator=
","
>
#{projectId}
</foreach>
<if
test=
"firstDayOfMonth != null"
>
work_day >= #{firstDayOfMonth}
</if>
group by `type`,dept_id, project_name
</select>
</mapper>
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkCentre.java
0 → 100644
View file @
583d2966
package
cn
.
wisenergy
.
model
.
app
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @description:
* @author: nh
* @create: 2021-01-22 16:06
**/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkCentre"
,
description
=
"中心实体类"
)
public
class
WorkCentre
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5645379064487638244L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"centreName"
,
value
=
"中心名称"
)
private
String
centreName
;
@ApiModelProperty
(
name
=
"centre_manager_id"
,
value
=
"中心管理员主键"
)
private
Integer
centre_manager_id
;
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
name
=
"modifyTime"
,
value
=
"修改时间"
)
private
Date
modifyTime
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkDept.java
View file @
583d2966
...
...
@@ -35,6 +35,9 @@ public class WorkDept implements Serializable {
@ApiModelProperty
(
name
=
"oaDeptId"
,
value
=
"oa中的部门编号"
)
private
String
oaDeptId
;
@ApiModelProperty
(
name
=
"centreId"
,
value
=
"部门所属中心的主键"
)
private
String
centreId
;
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"创建时间"
)
private
Date
createTime
;
...
...
wisenergy-model/src/main/java/cn/wisenergy/model/dto/MonthlyWorkingHoursStatistics.java
View file @
583d2966
...
...
@@ -14,9 +14,9 @@ public class MonthlyWorkingHoursStatistics implements Serializable {
private
static
final
long
serialVersionUID
=
-
8216457470821285624L
;
/**
* 商机/项目
*
工单类型:
商机/项目
*/
private
Integer
projectType
;
private
String
projectType
;
/**
* 填报次数
...
...
wisenergy-model/src/main/java/cn/wisenergy/model/dto/WorkTimeAndCostCollect.java
0 → 100644
View file @
583d2966
package
cn
.
wisenergy
.
model
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @description: 项目工时和工时成本
* @author: nh
* @create: 2021-01-22 11:57
**/
@Data
public
class
WorkTimeAndCostCollect
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7207732278277982917L
;
/**
* 类型:项目/商机
*/
private
String
type
;
/**
* 部门名称
*/
private
String
deptName
;
/**
* 部门主键
*/
private
Integer
deptId
;
/**
* 项目名称
*/
private
String
projectName
;
/**
* 开始统计日期
*/
private
String
firstTime
;
/**
*最后统计日期
*/
private
String
lastTime
;
/**
* 工时总计:人/天
*/
private
BigDecimal
totalTime
;
/**
* 工时成本
*/
private
Integer
cost
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/enums/ProjectTypeEnum.java
View file @
583d2966
package
cn
.
wisenergy
.
model
.
enums
;
public
enum
ProjectTypeEnum
{
PROJECT
(
0
,
"
该项目类型是
项目"
),
BUSINESS_OPPORTUNITY
(
1
,
"
该项目类型是
商机"
);
PROJECT
(
0
,
"项目"
),
BUSINESS_OPPORTUNITY
(
1
,
"商机"
);
private
Integer
code
;
private
String
msg
;
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/StatisticsService.java
View file @
583d2966
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.dto.GetMonthlyCollectParam
;
import
cn.wisenergy.model.dto.WorkTimeAndCostCollect
;
import
com.github.pagehelper.PageInfo
;
import
java.util.Date
;
import
java.util.List
;
public
interface
StatisticsService
{
...
...
@@ -12,7 +14,7 @@ public interface StatisticsService {
* @param param 参数对象
* @return
*/
PageInfo
get
MonthlyCollect
(
GetMonthlyCollectParam
param
);
PageInfo
get
DayWorkTimeOfMonth
(
GetMonthlyCollectParam
param
);
/**
* 获取用户本月填报和审批情况,权限为填报时只有填报情况
...
...
@@ -20,4 +22,10 @@ public interface StatisticsService {
* @return
*/
List
<
Object
>
getMonthlyStatistics
(
Integer
userId
);
/**
* 获取负责项目在本月的工时汇总:花费工时,工时成本
* @param userId
*/
List
<
WorkTimeAndCostCollect
>
getCurrentMonthWorkTimeCollect
(
Integer
userId
,
Date
startTime
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkProjectService.java
View file @
583d2966
...
...
@@ -31,10 +31,13 @@ public interface WorkProjectService {
* @param id
* @return
*/
List
<
ProjectDto
>
getByManagerId
(
Integer
id
);
/**
* 获取用户管理的项目
* @param userId
* @return
*/
List
<
WorkProject
>
getUserManageProjects
(
Integer
userId
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkUserService.java
View file @
583d2966
...
...
@@ -25,7 +25,7 @@ public interface WorkUserService {
ResultUser
login
(
String
loginName
,
String
password
,
String
source
);
/**
* 获取用户信息
* 获取用户
基础
信息
* @param id 用户主键
* @return
*/
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/impl/StatisticsServiceImpl.java
View file @
583d2966
...
...
@@ -24,10 +24,8 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @description:
...
...
@@ -57,14 +55,14 @@ public class StatisticsServiceImpl implements StatisticsService {
private
final
static
Integer
DEFAULT_DEPT_ID
=
1
;
@Override
public
PageInfo
get
MonthlyCollect
(
GetMonthlyCollectParam
param
)
{
public
PageInfo
get
DayWorkTimeOfMonth
(
GetMonthlyCollectParam
param
)
{
log
.
info
(
"StatisticsServiceImpl[]getMonthlyCollect[]input.param"
+
param
);
if
(
param
==
null
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
//管理员用户
WorkUser
user
=
workUserService
.
getById
(
param
.
getUserId
());
if
(
user
.
getLevel
()
!=
ManagerEnum
.
IS_SYSTEM_MANAGER
.
getCode
(
))
{
if
(
!
user
.
getLevel
().
equals
(
ManagerEnum
.
IS_SYSTEM_MANAGER
.
getCode
()
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
//默认时间为当月
...
...
@@ -93,7 +91,7 @@ public class StatisticsServiceImpl implements StatisticsService {
List
<
Integer
>
userIdList
=
workUserDeptMapper
.
listByDeptId
(
deptId
);
PageInfo
pageInfo
=
new
PageInfo
(
userIdList
);
//获取员工一个月中已审核、自动审核的工单单日汇总汇总
Array
List
<
StatisticsTableDto
>
statisticsTableDtos
=
new
ArrayList
<>();
List
<
StatisticsTableDto
>
statisticsTableDtos
=
new
ArrayList
<>();
for
(
Integer
id
:
userIdList
)
{
WorkUser
workUser
=
workUserService
.
getById
(
id
);
//获取当月每天工时信息
...
...
@@ -114,17 +112,17 @@ public class StatisticsServiceImpl implements StatisticsService {
}
@Override
public
Array
List
<
Object
>
getMonthlyStatistics
(
Integer
userId
)
{
public
List
<
Object
>
getMonthlyStatistics
(
Integer
userId
)
{
log
.
info
(
"WorkTimeOrderServiceImpl[]getMonthlyStatistics[]input.param"
+
userId
);
WorkUser
user
=
workUserService
.
getById
(
userId
);
//本月第一天
Date
firstDayOfMonth
=
DateUtil
.
getCurrentFirstDayOfMonth
();
//返回数据对象
Array
List
<
Object
>
objects
=
new
ArrayList
<>();
List
<
Object
>
objects
=
new
ArrayList
<>();
//用户是项目或部门级别
if
(
user
.
getLevel
()
==
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
(
)
||
user
.
getLevel
()
==
ManagerEnum
.
IS_DEPARTMENT_DIRECTOR
.
getCode
(
))
{
Hash
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
user
.
getLevel
()
.
equals
(
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
()
)
||
user
.
getLevel
()
.
equals
(
ManagerEnum
.
IS_DEPARTMENT_DIRECTOR
.
getCode
()
))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
//以审批人、审核状态、开始时间查询本月审批数量
map
.
put
(
"reviewerId"
,
userId
);
map
.
put
(
"status"
,
WorkOrderStatus
.
ALREADY_AUDIT
.
getCode
());
...
...
@@ -134,7 +132,7 @@ public class StatisticsServiceImpl implements StatisticsService {
map
.
replace
(
"status"
,
WorkOrderStatus
.
TURN_DOWN
.
getCode
());
Integer
rejectAndNotResubmit
=
workTimeOrderMapper
.
getCountByCondition
(
map
);
//项目级别,获取所管理项目,
if
(
user
.
getLevel
()
==
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
(
))
{
if
(
user
.
getLevel
()
.
equals
(
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
()
))
{
List
<
WorkProject
>
projects
=
workProjectService
.
getUserManageProjects
(
userId
);
ArrayList
<
Integer
>
projectIds
=
new
ArrayList
<>();
for
(
WorkProject
project
:
projects
)
{
...
...
@@ -145,14 +143,14 @@ public class StatisticsServiceImpl implements StatisticsService {
}
}
//部门级别
if
(
user
.
getLevel
()
==
ManagerEnum
.
IS_DEPARTMENT_DIRECTOR
.
getCode
(
))
{
if
(
user
.
getLevel
()
.
equals
(
ManagerEnum
.
IS_DEPARTMENT_DIRECTOR
.
getCode
()
))
{
map
.
put
(
"deptId"
,
user
.
getDeptId
());
//填报项目类型编码
int
[]
workOrderTypeArray
=
{
WorkOrderType
.
EXTERNAL_WORK
.
getCode
(),
WorkOrderType
.
INTERNAL_WORK
.
getCode
(),
WorkOrderType
.
OTHER_NOT_PROJECT_BUSINESS
.
getCode
()};
map
.
put
(
"typeArray"
,
workOrderTypeArray
);
}
//待审核包括:新提交和重新提交的
Array
List
<
Integer
>
statusArray
=
new
ArrayList
<>();
List
<
Integer
>
statusArray
=
new
ArrayList
<>();
statusArray
.
add
(
WorkOrderStatus
.
WAIT_AUDIT
.
getCode
());
statusArray
.
add
(
WorkOrderStatus
.
RE_SUBMIT
.
getCode
());
map
.
remove
(
"reviewerId"
);
...
...
@@ -169,18 +167,43 @@ public class StatisticsServiceImpl implements StatisticsService {
}
//用户是普通用户或项目级别用户
ArrayList
<
MonthlyWorkingHoursStatistics
>
statisticsArrayList
=
new
ArrayList
<>();
if
(
user
.
getLevel
()
==
ManagerEnum
.
NOT_MANAGER
.
getCode
(
)
||
user
.
getLevel
()
==
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
(
))
{
if
(
user
.
getLevel
()
.
equals
(
ManagerEnum
.
NOT_MANAGER
.
getCode
()
)
||
user
.
getLevel
()
.
equals
(
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
()
))
{
String
currentDayOfMonth
=
DateUtil
.
convertDateToYMDStr
(
DateUtil
.
getCurrentFirstDayOfMonth
());
//统计项目类型工单填报次数、总工时
MonthlyWorkingHoursStatistics
statistics1
=
workTimeOrderMapper
.
collectByProjectType
(
userId
,
ProjectTypeEnum
.
PROJECT
.
getCode
(),
currentDayOfMonth
);
MonthlyWorkingHoursStatistics
statistics1
=
workTimeOrderMapper
.
statisticsByProjectType
(
userId
,
ProjectTypeEnum
.
PROJECT
.
getCode
(),
currentDayOfMonth
);
statistics1
.
setProjectType
(
ProjectTypeEnum
.
PROJECT
.
getMsg
());
statisticsArrayList
.
add
(
statistics1
);
//统计商机类型工单填报次数、总工时
MonthlyWorkingHoursStatistics
statistics2
=
workTimeOrderMapper
.
collectByProjectType
(
userId
,
ProjectTypeEnum
.
BUSINESS_OPPORTUNITY
.
getCode
(),
currentDayOfMonth
);
MonthlyWorkingHoursStatistics
statistics2
=
workTimeOrderMapper
.
statisticsByProjectType
(
userId
,
ProjectTypeEnum
.
BUSINESS_OPPORTUNITY
.
getCode
(),
currentDayOfMonth
);
statistics2
.
setProjectType
(
ProjectTypeEnum
.
BUSINESS_OPPORTUNITY
.
getMsg
());
statisticsArrayList
.
add
(
statistics2
);
objects
.
add
(
statisticsArrayList
);
}
return
objects
;
}
@Override
public
List
<
WorkTimeAndCostCollect
>
getCurrentMonthWorkTimeCollect
(
Integer
userId
,
Date
startTime
)
{
log
.
info
(
"StatisticsServiceImpl[]getCurrentMonthWorkTimeCollect[]input.param"
+
userId
+
startTime
);
if
(
userId
==
null
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkUser
user
=
workUserService
.
getById
(
userId
);
if
(
user
.
getLevel
().
equals
(
ManagerEnum
.
NOT_MANAGER
.
getCode
()))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
//查询用户管理的项目
List
<
WorkProject
>
userManageProjects
=
workProjectService
.
getUserManageProjects
(
userId
);
//获取项目集合中所有项目的项目主键
List
<
Integer
>
projectIds
=
userManageProjects
.
stream
().
map
(
WorkProject:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
WorkTimeAndCostCollect
>
collect
=
workTimeOrderMapper
.
getWorkTimeAndCostCollect
(
projectIds
,
startTime
);
for
(
WorkTimeAndCostCollect
timeAndCostCollect
:
collect
)
{
//复制部门名称
timeAndCostCollect
.
setDeptName
(
workDeptService
.
getById
(
timeAndCostCollect
.
getDeptId
()).
getDeptName
());
}
return
collect
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkDeptServiceImpl.java
View file @
583d2966
...
...
@@ -10,7 +10,9 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
...
...
@@ -40,14 +42,17 @@ public class WorkDeptServiceImpl implements WorkDeptService {
return
workDept
;
}
@Override
public
List
<
WorkDept
>
getDeptInfo
(
Integer
deptId
)
{
log
.
info
(
"WorkDeptServiceImpl[]getAllDeptInfo"
+
deptId
);
//获取部门信息
List
<
WorkDept
>
workDept
=
workDeptMapper
.
getDeptById
(
deptId
);
if
(
CollectionUtil
.
isEmpty
(
workDept
))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"id"
,
deptId
);
List
<
WorkDept
>
workDepts
=
workDeptMapper
.
getDeptByCondition
(
map
);
if
(
CollectionUtil
.
isEmpty
(
workDepts
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_FOUND
);
}
return
workDept
;
return
workDept
s
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkProjectServiceImpl.java
View file @
583d2966
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkCentreMapper
;
import
cn.wisenergy.mapper.WorkDeptMapper
;
import
cn.wisenergy.mapper.WorkProjectMapper
;
import
cn.wisenergy.model.app.WorkCentre
;
import
cn.wisenergy.model.app.WorkDept
;
import
cn.wisenergy.model.app.WorkProject
;
import
cn.wisenergy.model.app.WorkUser
;
import
cn.wisenergy.model.dto.ProjectDto
;
...
...
@@ -19,6 +24,7 @@ import org.springframework.util.CollectionUtils;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* <p>
...
...
@@ -38,6 +44,12 @@ public class WorkProjectServiceImpl implements WorkProjectService {
@Autowired
private
WorkUserService
workUserService
;
@Autowired
private
WorkDeptMapper
workDeptMapper
;
@Autowired
private
WorkCentreMapper
workCentreMapper
;
/**
* 功能:根据项目id获取项目
*
...
...
@@ -105,6 +117,7 @@ public class WorkProjectServiceImpl implements WorkProjectService {
return
projectDtos
;
}
@Override
public
List
<
WorkProject
>
getUserManageProjects
(
Integer
userId
)
{
log
.
info
(
"WorkProjectServiceImpl[]getUserManageProjects[]input.param"
+
userId
);
...
...
@@ -112,20 +125,42 @@ public class WorkProjectServiceImpl implements WorkProjectService {
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkUser
user
=
workUserService
.
getById
(
userId
);
//存放项目列表
List
<
WorkProject
>
workProjects
=
new
ArrayList
<>();
//存放查询条件
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
Integer
level
=
user
.
getLevel
();
if
(
level
.
equals
(
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
()
))
{
//项目级别查询项目管理员为用户的项目
if
(
user
.
getLevel
()
==
ManagerEnum
.
IS_PROJECT_DIRECTOR
.
getCode
(
))
{
map
.
put
(
"managerId"
,
userId
);
workProjects
=
workProjectMapper
.
getProjectsByCriteria
(
map
);
}
//用户是部门级别,查询该部门下的所有项目
if
(
level
.
equals
(
ManagerEnum
.
IS_DEPARTMENT_DIRECTOR
.
getCode
()
))
{
if
(
user
.
getLevel
()
==
ManagerEnum
.
IS_DEPARTMENT_DIRECTOR
.
getCode
(
))
{
map
.
put
(
"deptId"
,
user
.
getDeptId
());
workProjects
=
workProjectMapper
.
getProjectsByCriteria
(
map
);
}
//中心级别的用户查看中心下所有部门的所有项目
if
(
user
.
getLevel
().
equals
(
ManagerEnum
.
IS_CENTRE_DIRECTOR
.
getCode
()))
{
//获取中心信息
WorkCentre
workCentre
=
workCentreMapper
.
getByManagerId
(
user
.
getId
());
if
(
workCentre
==
null
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
CENTRE_NOT_FOUND
);
}
map
.
put
(
"centre_id"
,
workCentre
.
getId
());
//获取中心下的部门信息
List
<
WorkDept
>
workDepts
=
workDeptMapper
.
getDeptByCondition
(
map
);
if
(
CollectionUtils
.
isEmpty
(
workDepts
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_FOUND
);
}
//获取这些部门的主键
List
<
Integer
>
deptIds
=
workDepts
.
stream
().
map
(
workDept
->
workDept
.
getId
()).
collect
(
Collectors
.
toList
());
map
.
clear
();
map
.
put
(
"deptIds"
,
deptIds
);
workProjects
=
workProjectMapper
.
getProjectsByCriteria
(
map
);
}
if
(
CollectionUtil
.
isEmpty
(
workProjects
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
MANAGER_NOT_PROJECT
);
}
return
workProjects
;
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/StatisticsController.java
View file @
583d2966
package
cn
.
wisenergy
.
web
.
admin
.
controller
.
app
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.model.app.WorkDept
;
import
cn.wisenergy.model.dto.GetMonthlyCollectParam
;
import
cn.wisenergy.model.dto.WorkTimeAndCostCollect
;
import
cn.wisenergy.service.StatisticsService
;
import
cn.wisenergy.service.WorkDeptService
;
import
cn.wisenergy.web.admin.controller.common.BaseController
;
...
...
@@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -37,7 +41,7 @@ public class StatisticsController extends BaseController {
@GetMapping
(
"/getMonthlyCollect"
)
public
PageInfo
getMonthlyCollect
(
GetMonthlyCollectParam
param
)
{
log
.
info
(
"StatisticsController[]getMonthlyCollect[]input.param"
+
param
);
PageInfo
monthlyCollect
=
statisticsService
.
get
MonthlyCollect
(
param
);
PageInfo
monthlyCollect
=
statisticsService
.
get
DayWorkTimeOfMonth
(
param
);
return
monthlyCollect
;
}
...
...
@@ -50,4 +54,15 @@ public class StatisticsController extends BaseController {
return
workDepts
;
}
@ApiOperation
(
value
=
"获取负责项目工时汇总"
,
notes
=
"获取负责项目工时汇总"
)
@GetMapping
(
"/getCurrentMonthWorkTimeCollect"
)
public
List
<
WorkTimeAndCostCollect
>
getWorkTimeCollect
(
Integer
userId
,
Date
startTime
)
{
log
.
info
(
"WorkUserController[]getCurrentMonthWorkTimeCollect[]input.param"
+
userId
,
startTime
);
if
(
userId
==
null
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkTimeAndCostCollect
>
currentMonthWorkTimeCollect
=
statisticsService
.
getCurrentMonthWorkTimeCollect
(
userId
,
startTime
);
return
currentMonthWorkTimeCollect
;
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkUserController.java
View file @
583d2966
...
...
@@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -62,6 +61,12 @@ public class WorkUserController extends BaseController {
return
getResult
(
resultUser
);
}
@ApiOperation
(
value
=
"修改密码"
,
notes
=
"修改用户登录密码"
,
httpMethod
=
"PUT"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户主键"
,
dataType
=
"integer"
),
@ApiImplicitParam
(
name
=
"oldPassword"
,
value
=
"原密码"
,
dataType
=
"string"
),
@ApiImplicitParam
(
name
=
"newPassword"
,
value
=
"新密码"
,
dataType
=
"string"
),
})
@PutMapping
(
value
=
"/changePassword"
)
public
Result
<
ResultUser
>
changePassword
(
Integer
userId
,
String
oldPassword
,
String
newPassword
)
{
log
.
info
(
"WorkUserController[]changePassword[]input.param{}"
+
userId
+
oldPassword
+
newPassword
);
...
...
@@ -73,10 +78,10 @@ public class WorkUserController extends BaseController {
}
@ApiOperation
(
value
=
"获取本月工时统计"
,
notes
=
"获取本月"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户主键"
,
dataType
=
"int
eger
"
,
required
=
true
)
@ApiOperation
(
value
=
"获取本月工时统计
和审核统计
"
,
notes
=
"获取本月"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户主键"
,
dataType
=
"int"
,
required
=
true
)
@GetMapping
(
"/getMonthlyWorkingHours"
)
public
Result
<
Array
List
<
Object
>>
getMonthlyWorkingHours
(
Integer
userId
){
public
Result
<
List
<
Object
>>
getMonthlyWorkingHours
(
Integer
userId
){
log
.
info
(
"WorkOrderController[]getMonthlyWorkingHours[]input.param"
+
userId
);
if
(
userId
==
null
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
...
...
@@ -84,4 +89,6 @@ public class WorkUserController extends BaseController {
List
<
Object
>
monthlyStatistics
=
statisticsService
.
getMonthlyStatistics
(
userId
);
return
getResult
(
monthlyStatistics
);
}
}
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