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
a3ba0140
Commit
a3ba0140
authored
Jan 21, 2021
by
cq990612
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
第一次提交
parent
8d7b946e
Show whitespace changes
Inline
Side-by-side
Showing
66 changed files
with
3918 additions
and
0 deletions
+3918
-0
DateUtils.java
...on/src/main/java/cn/wisenergy/common/utils/DateUtils.java
+430
-0
BASE_RESP_CODE_ENUM.java
...wisenergy/common/utils/exception/BASE_RESP_CODE_ENUM.java
+104
-0
CustomException.java
.../cn/wisenergy/common/utils/exception/CustomException.java
+64
-0
RESP_CODE_ENUM.java
...a/cn/wisenergy/common/utils/exception/RESP_CODE_ENUM.java
+74
-0
WorkCollectMapper.java
.../src/main/java/cn/wisenergy/mapper/WorkCollectMapper.java
+25
-0
WorkDeptMapper.java
...per/src/main/java/cn/wisenergy/mapper/WorkDeptMapper.java
+16
-0
WorkHolidayMapper.java
.../src/main/java/cn/wisenergy/mapper/WorkHolidayMapper.java
+16
-0
WorkProjectChangeMapper.java
...ain/java/cn/wisenergy/mapper/WorkProjectChangeMapper.java
+16
-0
WorkProjectMapper.java
.../src/main/java/cn/wisenergy/mapper/WorkProjectMapper.java
+16
-0
WorkSbumitAdoptMapper.java
.../main/java/cn/wisenergy/mapper/WorkSbumitAdoptMapper.java
+16
-0
WorkTimeOrderMapper.java
...rc/main/java/cn/wisenergy/mapper/WorkTimeOrderMapper.java
+30
-0
WorkUserDeptMapper.java
...src/main/java/cn/wisenergy/mapper/WorkUserDeptMapper.java
+16
-0
WorkUserMapper.java
...per/src/main/java/cn/wisenergy/mapper/WorkUserMapper.java
+16
-0
WorkUserProjectMapper.java
.../main/java/cn/wisenergy/mapper/WorkUserProjectMapper.java
+16
-0
WorkCollectMapper.xml
...gy-mapper/src/main/resources/mapper/WorkCollectMapper.xml
+78
-0
WorkDeptMapper.xml
...nergy-mapper/src/main/resources/mapper/WorkDeptMapper.xml
+18
-0
WorkHolidayMapper.xml
...gy-mapper/src/main/resources/mapper/WorkHolidayMapper.xml
+19
-0
WorkProjectChangeMapper.xml
...per/src/main/resources/mapper/WorkProjectChangeMapper.xml
+20
-0
WorkProjectMapper.xml
...gy-mapper/src/main/resources/mapper/WorkProjectMapper.xml
+26
-0
WorkSbumitAdoptMapper.xml
...apper/src/main/resources/mapper/WorkSbumitAdoptMapper.xml
+17
-0
WorkTimeOrderMapper.xml
...-mapper/src/main/resources/mapper/WorkTimeOrderMapper.xml
+105
-0
WorkUserDeptMapper.xml
...y-mapper/src/main/resources/mapper/WorkUserDeptMapper.xml
+17
-0
WorkUserMapper.xml
...nergy-mapper/src/main/resources/mapper/WorkUserMapper.xml
+28
-0
WorkUserProjectMapper.xml
...apper/src/main/resources/mapper/WorkUserProjectMapper.xml
+17
-0
mybatis-config.xml
wisenergy-mapper/src/main/resources/mybatis-config.xml
+14
-0
WorkCollect.java
...del/src/main/java/cn/wisenergy/model/app/WorkCollect.java
+51
-0
WorkDept.java
...-model/src/main/java/cn/wisenergy/model/app/WorkDept.java
+48
-0
WorkHoliday.java
...del/src/main/java/cn/wisenergy/model/app/WorkHoliday.java
+45
-0
WorkProject.java
...del/src/main/java/cn/wisenergy/model/app/WorkProject.java
+76
-0
WorkProjectChange.java
...c/main/java/cn/wisenergy/model/app/WorkProjectChange.java
+51
-0
WorkSbumitAdopt.java
...src/main/java/cn/wisenergy/model/app/WorkSbumitAdopt.java
+37
-0
WorkTimeOrder.java
...l/src/main/java/cn/wisenergy/model/app/WorkTimeOrder.java
+78
-0
WorkUser.java
...-model/src/main/java/cn/wisenergy/model/app/WorkUser.java
+72
-0
WorkUserDept.java
...el/src/main/java/cn/wisenergy/model/app/WorkUserDept.java
+38
-0
WorkUserProject.java
...src/main/java/cn/wisenergy/model/app/WorkUserProject.java
+40
-0
CalendarDto.java
...del/src/main/java/cn/wisenergy/model/dto/CalendarDto.java
+29
-0
CreateWorkOrderDto.java
.../main/java/cn/wisenergy/model/dto/CreateWorkOrderDto.java
+24
-0
ExamineGroupbyProjectDto.java
...java/cn/wisenergy/model/dto/ExamineGroupbyProjectDto.java
+48
-0
ProjectDto.java
...odel/src/main/java/cn/wisenergy/model/dto/ProjectDto.java
+33
-0
SubtotalDto.java
...del/src/main/java/cn/wisenergy/model/dto/SubtotalDto.java
+31
-0
WorkTimeOrderDto.java
...rc/main/java/cn/wisenergy/model/dto/WorkTimeOrderDto.java
+56
-0
WorkCollectService.java
...rc/main/java/cn/wisenergy/service/WorkCollectService.java
+55
-0
WorkDeptService.java
...e/src/main/java/cn/wisenergy/service/WorkDeptService.java
+16
-0
WorkHolidayService.java
...rc/main/java/cn/wisenergy/service/WorkHolidayService.java
+16
-0
WorkProjectChangeService.java
...n/java/cn/wisenergy/service/WorkProjectChangeService.java
+16
-0
WorkProjectService.java
...rc/main/java/cn/wisenergy/service/WorkProjectService.java
+38
-0
WorkSbumitAdoptService.java
...ain/java/cn/wisenergy/service/WorkSbumitAdoptService.java
+21
-0
WorkTimeOrderService.java
.../main/java/cn/wisenergy/service/WorkTimeOrderService.java
+101
-0
WorkUserDeptService.java
...c/main/java/cn/wisenergy/service/WorkUserDeptService.java
+18
-0
WorkUserProjectService.java
...ain/java/cn/wisenergy/service/WorkUserProjectService.java
+21
-0
WorkUserService.java
...e/src/main/java/cn/wisenergy/service/WorkUserService.java
+19
-0
WorkCollectServiceImpl.java
...ava/cn/wisenergy/service/impl/WorkCollectServiceImpl.java
+128
-0
WorkDeptServiceImpl.java
...n/java/cn/wisenergy/service/impl/WorkDeptServiceImpl.java
+38
-0
WorkHolidayServiceImpl.java
...ava/cn/wisenergy/service/impl/WorkHolidayServiceImpl.java
+79
-0
WorkProjectChangeServiceImpl.java
.../wisenergy/service/impl/WorkProjectChangeServiceImpl.java
+17
-0
WorkProjectServiceImpl.java
...ava/cn/wisenergy/service/impl/WorkProjectServiceImpl.java
+99
-0
WorkSbumitAdoptServiceImpl.java
...cn/wisenergy/service/impl/WorkSbumitAdoptServiceImpl.java
+44
-0
WorkTimeOrderServiceImpl.java
...a/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
+544
-0
WorkUserDeptServiceImpl.java
...va/cn/wisenergy/service/impl/WorkUserDeptServiceImpl.java
+69
-0
WorkUserProjectServiceImpl.java
...cn/wisenergy/service/impl/WorkUserProjectServiceImpl.java
+55
-0
WorkUserServiceImpl.java
...n/java/cn/wisenergy/service/impl/WorkUserServiceImpl.java
+55
-0
WorkCollectController.java
...nergy/web/admin/controller/app/WorkCollectController.java
+65
-0
WorkTimeOrderController.java
...rgy/web/admin/controller/app/WorkTimeOrderController.java
+166
-0
WorkUserController.java
...isenergy/web/admin/controller/app/WorkUserController.java
+39
-0
BaseController.java
...wisenergy/web/admin/controller/common/BaseController.java
+147
-0
Examin.java
...in/src/main/java/cn/wisenergy/web/config/auto/Examin.java
+81
-0
No files found.
wisenergy-common/src/main/java/cn/wisenergy/common/utils/DateUtils.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
common
.
utils
;
import
java.text.DateFormat
;
import
java.text.ParsePosition
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.StringTokenizer
;
/**
* DateUtil
*
* @author robin
* @author refactor by Sevan Joe
*/
public
class
DateUtils
{
public
DateUtils
()
{
}
/**
* return current date value in format: yyyy-MM-dd
*
* @return String value
*/
public
static
String
getNowDate
()
{
return
dateToStringWithPattern
(
new
Date
(),
"yyyy-MM-dd"
);
}
/**
* return current time value in format: yyyy-MM-dd HH:mm:ss:sss
*
* @return String value
*/
public
static
String
getNowTime
()
{
return
dateToStringWithPattern
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss:sss"
);
}
/**
* return time value of specified date in format: yyyy-MM-dd HH:mm
*
* @param date the specified date to convert
* @return String value
*/
public
static
String
dateToString
(
Date
date
)
{
return
dateToStringWithPattern
(
date
,
"yyyy-MM-dd HH:mm"
);
}
/**
* return date value only of specified date in format: yyyy-MM-dd
*
* @param date the specified date to convert
* @return String value
*/
public
static
String
dateToShortString
(
Date
date
)
{
return
dateToStringWithPattern
(
date
,
"yyyy-MM-dd"
);
}
/**
* return time value of specified date in format: yyyy-MM-dd HH:mm:ss
*
* @param date the specified date to convert
* @return String value
*/
public
static
String
dateToLongString
(
Date
date
)
{
return
dateToStringWithPattern
(
date
,
"yyyy-MM-dd HH:mm:ss"
);
}
/**
* return time value only of specified date in format: HH:mm:ss
*
* @param date the specified date to convert
* @return String value
*/
public
static
String
dateToTimeString
(
Date
date
)
{
return
dateToStringWithPattern
(
date
,
"HH:mm:ss"
);
}
/**
* return time value of specified date
*
* @param date the specified date to convert
* @param pattern time format
* @return String value
*/
public
static
String
dateToStringWithPattern
(
Date
date
,
String
pattern
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
pattern
);
return
simpleDateFormat
.
format
(
date
);
}
catch
(
Exception
e
)
{
return
""
;
}
}
/**
* split date value of specified date by '-'
*
* @param date the specified date to convert
* @return String[] value
*/
public
static
String
[]
SplitDate
(
Date
date
)
{
String
s
=
dateToShortString
(
date
);
String
[]
temp
=
new
String
[
3
];
StringTokenizer
stringTokenizer
=
new
StringTokenizer
(
s
,
"-"
);
int
i
=
0
;
while
(
stringTokenizer
.
hasMoreTokens
())
{
temp
[
i
]
=
stringTokenizer
.
nextToken
();
i
++;
}
return
temp
;
}
/**
* return string value of specified date in format: yyyy-MM-ddTHH:mm:ss
*
* @param date the specified date to convert
* @return String value
*/
public
static
String
dateToBOMCStringDate
(
Date
date
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
string
=
simpleDateFormat
.
format
(
date
);
string
=
StringToBOMCStringDate
(
string
);
return
string
;
}
catch
(
Exception
e
)
{
return
""
;
}
}
/**
* return handled string value of date
*
* @param date string value to convert
* @return String value
*/
public
static
String
StringToBOMCStringDate
(
String
date
)
{
return
date
.
replace
(
" "
,
"T"
);
}
/**
* return date value of specified string value in format: yyyy-MM-dd HH:mm:ss
*
* @param string string value to convert
* @return Date value
*/
public
static
Date
stringToDate
(
String
string
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
return
simpleDateFormat
.
parse
(
string
);
}
catch
(
Exception
e
)
{
return
null
;
}
}
/**
* return date value of specified string value in format: HH:mm:ss
*
* @param string string value to convert
* @return Date value
*/
public
static
Date
timeStringToDate
(
String
string
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"HH:mm:ss"
);
return
simpleDateFormat
.
parse
(
string
);
}
catch
(
Exception
e
)
{
return
null
;
}
}
/**
* return date value of specified string value in format: yyyy-MM-dd
*
* @param string string value to convert
* @return Date value
*/
public
static
Date
stringToShortDate
(
String
string
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
ParsePosition
parsePosition
=
new
ParsePosition
(
0
);
return
simpleDateFormat
.
parse
(
string
,
parsePosition
);
}
catch
(
Exception
e
)
{
return
null
;
}
}
/**
* return date value of specified string value in format: yyyyMMdd
*
* @param string string value to convert
* @return Date value
*/
public
static
Date
stringToShortNoDate
(
String
string
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
ParsePosition
parsePosition
=
new
ParsePosition
(
0
);
return
simpleDateFormat
.
parse
(
string
,
parsePosition
);
}
catch
(
Exception
e
)
{
return
null
;
}
}
/**
* return date value of now
*
* @return Date value
*/
public
static
Date
getNow
()
{
return
new
Date
();
}
/**
* return unix timestamp of now
*
* @return long value
*/
public
static
long
getCurrentTimestamp
()
{
return
(
new
Date
()).
getTime
();
}
/**
* return unix timestamp of specified string value in format: yyyy-MM-dd
*
* @param string string value to convert
* @return long value
*/
public
static
long
getTimestamp
(
String
string
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
ParsePosition
parsePosition
=
new
ParsePosition
(
0
);
Date
date
=
simpleDateFormat
.
parse
(
string
,
parsePosition
);
return
date
.
getTime
();
}
catch
(
Exception
e
)
{
return
-
1
;
}
}
/**
* return unix timestamp of specified string value in format: yyyy-MM-dd HH:mm:ss
*
* @param string string value to convert
* @return long value
*/
public
static
long
getStringToTimestamp
(
String
string
)
{
try
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
ParsePosition
parsePosition
=
new
ParsePosition
(
0
);
Date
date
=
simpleDateFormat
.
parse
(
string
,
parsePosition
);
return
date
.
getTime
();
}
catch
(
Exception
e
)
{
return
-
1
;
}
}
/**
* return the time difference from a specified time to now in minutes
*
* @param timestamp unix timestamp of a specified time
* @return long value
*/
public
static
long
getOffMinutes
(
long
timestamp
)
{
return
getOffMinutes
(
timestamp
,
System
.
currentTimeMillis
());
}
/**
* return the time difference from two specified time
*
* @param left unix timestamp of the first specified time
* @param right unix timestamp of the second specified time
* @return long value
*/
public
static
long
getOffMinutes
(
long
left
,
long
right
)
{
return
(
left
-
right
)
/
60000L
;
}
/**
* return string value of specified unix timestamp
*
* @param timestamp unix timestamp
* @return String value
*/
public
static
String
LongToDateString
(
long
timestamp
)
{
DateFormat
dateFormat
;
Date
date
;
try
{
dateFormat
=
DateFormat
.
getDateTimeInstance
();
String
dateString
=
String
.
valueOf
(
timestamp
);
date
=
new
Date
(
Long
.
parseLong
(
dateString
));
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
return
null
;
}
return
dateFormat
.
format
(
date
);
}
/**
* return date's weekday value of specified string value in format: yyyy-MM-dd Date first =
* DateUtil.getMonday(today,Calendar.SUNDAY); Date last = DateUtil.getMonday(today,Calendar.SATURDAY);
*
* @param dateString String value of date
* @param weekDay int index of weekday to get, first Calendar.SUNDAY, last Calendar.SATURDAY
* @return Date value
*/
public
static
Date
getWeekDay
(
String
dateString
,
int
weekDay
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
date
=
null
;
try
{
date
=
simpleDateFormat
.
parse
(
dateString
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
if
(
date
!=
null
)
{
calendar
.
setTime
(
date
);
}
// DAY_OF_WEEK
// Field number for get and set indicating the day of the week. This field takes values
// SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, and SATURDAY
calendar
.
set
(
Calendar
.
DAY_OF_WEEK
,
weekDay
);
calendar
.
add
(
Calendar
.
DATE
,
1
);
return
calendar
.
getTime
();
}
/**
* return the first day of the date's month of specified string value in format: yyyy-MM
*
* @param dateString String value of date
* @return Date value
*/
public
static
Date
getMonthFirstDay
(
String
dateString
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM"
);
Date
date
=
null
;
try
{
date
=
simpleDateFormat
.
parse
(
dateString
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
if
(
date
!=
null
)
{
calendar
.
setTime
(
date
);
}
calendar
.
add
(
Calendar
.
DAY_OF_MONTH
,
0
);
return
calendar
.
getTime
();
}
/**
* return the last day of the date's month of specified string value in format: yyyy-MM
*
* @param dateString String value of date
* @return Date value
*/
public
static
Date
getMonthLastDay
(
String
dateString
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM"
);
Date
date
=
null
;
try
{
date
=
simpleDateFormat
.
parse
(
dateString
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
if
(
date
!=
null
)
{
calendar
.
setTime
(
date
);
}
calendar
.
add
(
Calendar
.
MONTH
,
1
);
calendar
.
add
(
Calendar
.
DATE
,
-
1
);
return
calendar
.
getTime
();
}
/**
* return the first day of the date's year of specified string value in format: yyyy
*
* @param dateString String value of date
* @return Date value
*/
public
static
Date
getYearFirstDay
(
String
dateString
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy"
);
Date
date
=
null
;
try
{
date
=
simpleDateFormat
.
parse
(
dateString
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
if
(
date
!=
null
)
{
calendar
.
setTime
(
date
);
}
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
0
);
return
calendar
.
getTime
();
}
/**
* return the last day of the date's year of specified string value in format: yyyy
*
* @param dateString String value
* @return Date value
*/
public
static
Date
getYearLastDay
(
String
dateString
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy"
);
Date
date
=
null
;
try
{
date
=
simpleDateFormat
.
parse
(
dateString
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
Calendar
calendar
=
Calendar
.
getInstance
();
if
(
date
!=
null
)
{
calendar
.
setTime
(
date
);
}
calendar
.
add
(
Calendar
.
YEAR
,
1
);
calendar
.
add
(
Calendar
.
DATE
,
-
1
);
return
calendar
.
getTime
();
}
/**
* return date value with specified field value
*
* @param date Date value
* @param field int Date filed, such as Calendar.DAY_OF_MONTH
* @param amount int the value of the field to set
* @return Date value
*/
public
static
Date
getDate
(
Date
date
,
int
field
,
int
amount
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
add
(
field
,
amount
);
return
calendar
.
getTime
();
}
}
\ No newline at end of file
wisenergy-common/src/main/java/cn/wisenergy/common/utils/exception/BASE_RESP_CODE_ENUM.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
common
.
utils
.
exception
;
/**
* 响应码基类
*
* @author wyy
* @data 2019/08/15
*/
public
enum
BASE_RESP_CODE_ENUM
{
/********************* SpringMBoot 系统异常 **********************/
MIS_REQ_PARAM
(
"400"
,
"请求参数丢失"
),
NO_AUTH_REQUEST
(
"401"
,
"未授权"
),
REJECT_REQUEST
(
"403"
,
"未授权"
),
RESOURCE_NOT_FOUND
(
"404"
,
"请求的资源不存在"
),
METHOD_NOT_SUPPORTED
(
"405"
,
"不支持的请求方法"
),
MEDIA_TYPE_NOT_ACCEPT
(
"406"
,
"无法接受请求中的媒体类型"
),
REQUEST_TIME_OUT
(
"408"
,
"无法接受请求中的媒体类型"
),
MEDIA_TYPE_NOT_SUPPORTED
(
"415"
,
"不支持的媒体类型"
),
SERVER_ERROR
(
"500"
,
"获取数据异常"
),
INPUT_PARAM_IS_NULL
(
"600"
,
"入参为空"
),
WORK_ORDER_INFO_IS_NULL
(
"601"
,
"工单信息为空"
),
USER_ADD_FAIL
(
"602"
,
"新建用户失败"
),
UPDATE_DATA_FAIL
(
"603"
,
"更新数据失败"
),
USER_UPDATE_PASSWORD_FAIL
(
"604"
,
"用户修改密码失败"
),
UPDATE_PASSWORD_FAIL_OLD_PASSWORD_ERROR
(
"605"
,
"修改密码失败,旧密码错误"
),
RECORD_WORD_ADD_FAIL
(
"606"
,
"字段添加失败"
),
USER_RESET_PASSWORD_FAIL
(
"607"
,
"用户重置密码失败"
),
FILE_NOT_NULL
(
"608"
,
"上传文件不能为空"
),
STATISTICS_RECORD_DATA_FAIL
(
"609"
,
"统计档案数据失败"
),
EQUIPMENT_INFO_IS_NULL
(
"610"
,
"设备信息为空"
),
QUERY_WORK_ORDER_DATA_IS_NULL
(
"611"
,
"获取工单数据为空"
),
WORK_TIME_NOT_OVER_EIGHT
(
"611"
,
"每日累计工时不超过8小时"
),
USER_ACCOUNT_ALREADY_EXIST
(
"612"
,
"用户账号已存在"
),
USER_PHONE_ALREADY_EXIST
(
"613"
,
"该手机号已被注册"
),
INSERT_DATA_IS_FAIL
(
"614"
,
"插入数据失败"
),
FILE_INCORRETC_FORMAT
(
"615"
,
"文件格式不正确"
),
RECORD_WORD_REPEAT
(
"616"
,
"字段名称重复"
),
WORD_NAME_REPEAT
(
"617"
,
"字段名称请勿重复"
),
QUERY_USER_INFO_FAIL
(
"618"
,
"获取用户信息失败"
),
WORK_ORDER_ALREADY_COMMIT
(
"619"
,
"工单已填报,不能重复填报"
),
WORK_TIME_OVER_NOW_DAY
(
"620"
,
"工单日期不能大于当天"
),
INSERT_WORK_COLLECT_DATA_FAIL
(
"621"
,
"插入工时单汇总信息失败"
),
NO_JOIN_EVERY_PROJECT_PLASE_JION
(
"622"
,
"您还没有加入项目中,请先去加入项目"
),
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
(
"623"
,
"您不是管理员,请登录管理员账号"
),
DEPT_NOT_HAVE_USER
(
"624"
,
"该部门下没有人员"
),
PROJECT_NOT_HAVE_USER
(
"624"
,
"该部门下没有项目"
),
USER_PHONE_IS_ERROR
(
"625"
,
"用户名/手机号不正确"
),
DELETE_OLD_WORK_ORDER_FAIL
(
"626"
,
"删除旧工单数据失败"
),
WORK_DAY_THAN_DATE
(
"627"
,
"填报的日期超过系统默认日期"
),
DES_NOT_NULL
(
"628"
,
"工作简述不能为空"
),
WORK_PROJECT_IS_NULL
(
"629"
,
"项目为空"
),
WORK_ORDER_END
(
"630"
,
"该项目的工单已经全部审批"
),
DEPT_IS_NULL
(
"631"
,
"该部门不存在"
),
MANAGER_NOT_PROJECT
(
"632"
,
"该管理没有可管理的项目"
),
;
/**
* 错误编码
*/
public
String
code
;
/**
* 错误编码信息
*/
public
String
msg
;
/**
* 构造函数
*
* @param code 编码
* @param msg 编码信息
*/
BASE_RESP_CODE_ENUM
(
String
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
/**
* 获取编码
*/
public
String
getCode
()
{
return
code
;
}
/**
* 设置编码
*/
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
/**
* 获取编码信息
*/
public
String
getMsg
()
{
return
msg
;
}
/**
* 设置编码信息
*/
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
}
wisenergy-common/src/main/java/cn/wisenergy/common/utils/exception/CustomException.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
common
.
utils
.
exception
;
/**
* 接口异常对象
*/
public
class
CustomException
extends
RuntimeException
{
private
static
final
long
serialVersionUID
=
-
4974461182923482972L
;
// 错误编码
private
String
errorCode
;
// 错误编码信息
private
String
errorMsg
;
/**
* 应用接口有参构造函数
*
* @param errorCode 错误编码
* @param errorMsg 错误信息
*/
public
CustomException
(
String
errorCode
,
String
errorMsg
)
{
super
(
"errorCode:"
+
errorCode
+
" errorMsg:"
+
errorMsg
);
this
.
errorCode
=
errorCode
;
this
.
errorMsg
=
errorMsg
;
}
/**
* 应用接口有参构造函数
*
* @param respCodeEnum 基本响应枚举类
*/
public
CustomException
(
RESP_CODE_ENUM
respCodeEnum
)
{
super
(
respCodeEnum
.
getMsg
());
this
.
errorCode
=
respCodeEnum
.
getCode
();
this
.
errorMsg
=
respCodeEnum
.
getMsg
();
}
/**
* 获取错误编码
*/
public
String
getErrorCode
()
{
return
errorCode
;
}
/**
* 设置错误编码
*/
public
void
setErrorCode
(
String
errorCode
)
{
this
.
errorCode
=
errorCode
;
}
/**
* 获取异常编码
*/
public
String
getErrorMsg
()
{
return
errorMsg
;
}
/**
* 设置异常编码
*/
public
void
setErrorMsg
(
String
errorMsg
)
{
this
.
errorMsg
=
errorMsg
;
}
}
wisenergy-common/src/main/java/cn/wisenergy/common/utils/exception/RESP_CODE_ENUM.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
common
.
utils
.
exception
;
/**
* 响应编码
*/
public
enum
RESP_CODE_ENUM
{
/* ******************** 业务自定义异常 ********************* */
RSA_PRIVATE_KEY_ERROR
(
"1001"
,
"生成RSA非对称加密公钥出错"
),
RSA_NOT_EXIST
(
"1002"
,
"RSA非对称加密公钥不存在"
),
RSA_DECRYPTION_ERROR
(
"1003"
,
"RSA解密错误"
),
TOKEN_IS_NOT_EXIST
(
"1004"
,
"TOKEN已失效"
),
REQUIRED_IDENTIFY_NOT_EXIST
(
"1005"
,
"请求标识对象不存在"
),
ILLEGAL_PARAMETER
(
"1006"
,
"非法参数"
),
MISS_PARAMETER
(
"1007"
,
"缺少必须的参数"
),
ACCT_NOT_EXIST
(
"1008"
,
"账号不存在"
),
ACCT_OR_ACCOPASS_ERROR
(
"1009"
,
"账号或密码错误"
),
ACCT_HAS_FROZEN
(
"1010"
,
"账号已禁用"
),
NOT_LOGIN_ERROR
(
"1011"
,
"用户未登录"
),
CAPTCHA_CODE_INVALID
(
"1012"
,
"验证码失效"
),
CAPTCHA_CODE_ERROR
(
"1013"
,
"验证码错误"
),
NO_DATA
(
"1014"
,
"数据为空"
),
CAPTCHA_EXIST
(
"1015"
,
"验证码已发送,请稍等"
),
LOGIN_FAILURE
(
"1016"
,
"登录已失效,请重新登录"
),
PHONE_ERROE
(
"1017"
,
"绑定手机号错误"
),
RECORD_WORD_ADD_FAIL
(
"1018"
,
"字段添加失败"
),
INPUT_PARAM_IS_NULL
(
"1019"
,
"入参为空"
),
CREATE_WORK_ORDER_FAIL
(
"1020"
,
"创建工单失败"
),
QUERY_WORK_ORDER_INFO_FAIL
(
"1021"
,
"获取工单信息失败"
),
QUERY_WORK_ORDER_LISt_FAIL
(
"1021"
,
"获取工单列表失败"
),
AUDIT_WORK_ORDER_FAIL
(
"1022"
,
"审核工单失败"
),
QUERY_USER_INFO_FAIL
(
"1023"
,
"获取用户信息失败"
)
;
// 错误编码
private
String
code
;
// 错误信息
private
String
msg
;
// 相应编码有参构造函数
RESP_CODE_ENUM
(
String
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
/**
* 获取编码
*/
public
String
getCode
()
{
return
code
;
}
/**
* 设置编码
*/
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
/**
* 获取编码信息
*/
public
String
getMsg
()
{
return
msg
;
}
/**
* 设置编码信息
*/
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkCollectMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkCollect
;
import
cn.wisenergy.model.dto.CalendarDto
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkCollectMapper
extends
BaseMapper
<
WorkCollect
>
{
List
<
CalendarDto
>
getWorkMonth
(
Integer
userId
,
Date
workMonth
);
int
inserWorkCollect
(
WorkCollect
workCollect
);
int
updateStatusOrTotaltime
(
Integer
id
,
Integer
status
,
Integer
totalTime
);
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkDeptMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkDept
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkDeptMapper
extends
BaseMapper
<
WorkDept
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkHolidayMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkHoliday
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkHolidayMapper
extends
BaseMapper
<
WorkHoliday
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkProjectChangeMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkProjectChange
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkProjectChangeMapper
extends
BaseMapper
<
WorkProjectChange
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkProjectMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkProject
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkProjectMapper
extends
BaseMapper
<
WorkProject
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkSbumitAdoptMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkSbumitAdopt
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkSbumitAdoptMapper
extends
BaseMapper
<
WorkSbumitAdopt
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkTimeOrderMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkTimeOrder
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkTimeOrderMapper
extends
BaseMapper
<
WorkTimeOrder
>
{
List
<
WorkTimeOrder
>
getByDay
(
Integer
userId
,
Date
workDay
);
int
save
(
WorkTimeOrder
workTimeOrder
);
int
updateByIds
(
@Param
(
"reviewerId"
)
Integer
reviewerId
,
@Param
(
"ids"
)
List
<
Integer
>
ids
);
int
updateStatusById
(
Integer
reviewerId
,
Integer
id
,
String
reason
);
List
<
WorkTimeOrder
>
queryByPage
(
@Param
(
"status"
)
Integer
status
,
@Param
(
"projectId"
)
Integer
projectId
,
@Param
(
"types"
)
List
<
Integer
>
types
);
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkUserDeptMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkUserDept
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkUserDeptMapper
extends
BaseMapper
<
WorkUserDept
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkUserMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkUser
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkUserMapper
extends
BaseMapper
<
WorkUser
>
{
}
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/WorkUserProjectMapper.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
mapper
;
import
cn.wisenergy.model.app.WorkUserProject
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkUserProjectMapper
extends
BaseMapper
<
WorkUserProject
>
{
}
wisenergy-mapper/src/main/resources/mapper/WorkCollectMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkCollectMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkCollect"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"user_id"
property=
"userId"
/>
<result
column=
"work_day"
property=
"workDay"
/>
<result
column=
"total_time"
property=
"totalTime"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<sql
id=
"vals"
>
#{userId},#{workDay},#{totalTime},#{status},now(),now()
</sql>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, user_id, work_day, total_time, status, create_time, modify_time
</sql>
<sql
id=
"cols_exclude_id"
>
user_id, work_day, total_time, status, create_time, modify_time
</sql>
<sql
id=
"table"
>
work_collect
</sql>
<sql
id=
"CalendarDto_List"
>
user_id, work_day,status
</sql>
<insert
id=
"inserWorkCollect"
>
INSERT INTO
<include
refid=
"table"
/>
(
<include
refid=
"cols_exclude_id"
/>
)
VALUES (
<include
refid=
"vals"
/>
)
</insert>
<update
id=
"updateStatusOrTotaltime"
>
UPDATE
<include
refid=
"table"
/>
<set>
<if
test=
"null != status"
>
status=#{status},
</if>
<if
test=
"null !=totalTime"
>
total_time = total_time + #{totalTime},
</if>
modify_time = now()
</set>
WHERE id = #{id}
</update>
<select
id=
"getWorkMonth"
resultType=
"cn.wisenergy.model.dto.CalendarDto"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM
<include
refid=
"table"
/>
<where>
<if
test=
"null != userId"
>
AND user_id = #{userId}
</if>
<if
test=
"null != workMonth"
>
AND DATE_FORMAT(work_day, '%Y%m') = DATE_FORMAT(#{workMonth} ,'%Y%m')
</if>
</where>
</select>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkDeptMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkDeptMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkDept"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"dept_name"
property=
"deptName"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, dept_name, create_time, modify_time
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkHolidayMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkHolidayMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkHoliday"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"day_start"
property=
"dayStart"
/>
<result
column=
"day_end"
property=
"dayEnd"
/>
<result
column=
"day_type"
property=
"dayType"
/>
<result
column=
"des"
property=
"des"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, day_start, day_end, day_type, des
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkProjectChangeMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkProjectChangeMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkProjectChange"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"project_id"
property=
"projectId"
/>
<result
column=
"type"
property=
"type"
/>
<result
column=
"content"
property=
"content"
/>
<result
column=
"reason"
property=
"reason"
/>
<result
column=
"change_date"
property=
"changeDate"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, project_id, type, content, reason, change_date
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkProjectMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkProjectMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkProject"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"peoject_num"
property=
"peojectNum"
/>
<result
column=
"project_name"
property=
"projectName"
/>
<result
column=
"type"
property=
"type"
/>
<result
column=
"manager_id"
property=
"managerId"
/>
<result
column=
"manager_name"
property=
"managerName"
/>
<result
column=
"dept_id"
property=
"deptId"
/>
<result
column=
"work_time"
property=
"workTime"
/>
<result
column=
"cost_budget"
property=
"costBudget"
/>
<result
column=
"project_status"
property=
"projectStatus"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, peoject_num, project_name, type, manager_id, manager_name, dept_id, work_time, cost_budget, project_status, create_time, modify_time
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkSbumitAdoptMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkSbumitAdoptMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkSbumitAdopt"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"submit_time"
property=
"submitTime"
/>
<result
column=
"auto_adopt"
property=
"autoAdopt"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, submit_time, auto_adopt
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkTimeOrderMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkTimeOrderMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkTimeOrder"
>
<id
column=
"work_id"
property=
"workId"
/>
<result
column=
"user_id"
property=
"userId"
/>
<result
column=
"user_name"
property=
"userName"
/>
<result
column=
"project_id"
property=
"projectId"
/>
<result
column=
"project_name"
property=
"projectName"
/>
<result
column=
"dept_id"
property=
"deptId"
/>
<result
column=
"work_time"
property=
"workTime"
/>
<result
column=
"work_day"
property=
"workDay"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"reviewer_id"
property=
"reviewerId"
/>
<result
column=
"des"
property=
"des"
/>
<result
column=
"reason"
property=
"reason"
/>
<result
column=
"type"
property=
"type"
/>
<result
column=
"is_overtime"
property=
"isOvertime"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
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>
<sql
id=
"vals"
>
#{userId},#{userName},#{projectId},#{projectName},#{deptId},#{workTime},#{workDay},#{status},#{reviewerId},#{des},#{reason},#{type},#{isOvertime},now(),now()
</sql>
<sql
id=
"cols_exclude_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>
<sql
id=
"table"
>
work_time_order
</sql>
<insert
id=
"save"
keyProperty=
"workId"
useGeneratedKeys=
"true"
>
insert into
<include
refid=
"table"
/>
(
<include
refid=
"cols_exclude_id"
/>
)
value(
<include
refid=
"vals"
/>
)
</insert>
<update
id=
"updateByIds"
>
UPDATE
<include
refid=
"table"
/>
SET status = 2,reviewer_id = #{reviewerId}
WHERE work_id IN
<foreach
collection=
"ids"
item=
"id"
open=
"("
close=
")"
separator=
","
>
#{id}
</foreach>
</update>
<update
id=
"updateStatusById"
>
UPDATE
<include
refid=
"table"
/>
SET status = 3,reason = #{reason},reviewer_id = #{reviewerId},modify_time=now()
WHERE work_id = #{id}
</update>
<select
id=
"getByDay"
resultType=
"cn.wisenergy.model.app.WorkTimeOrder"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM
<include
refid=
"table"
/>
<where>
<if
test=
"null !=userId"
>
<if
test=
"null != userId"
>
AND user_id = #{userId}
</if>
<if
test=
"null != workDay"
>
AND DATE_FORMAT(work_day, '%Y%m%d') = DATE_FORMAT(#{workDay} ,'%Y%m%d')
</if>
</if>
</where>
</select>
<select
id=
"queryByPage"
resultType=
"cn.wisenergy.model.app.WorkTimeOrder"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM
<include
refid=
"table"
/>
<where>
<if
test=
"null != projectId"
>
AND project_id = #{projectId}
</if>
<if
test=
"null != status"
>
AND status = #{status}
</if>
<if
test=
"null != types"
>
AND type IN
<foreach
collection=
"types"
item=
"type"
open=
"("
close=
")"
separator=
","
>
#{type}
</foreach>
</if>
</where>
ORDER BY work_day,project_name DESC
</select>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkUserDeptMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkUserDeptMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkUserDept"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"user_id"
property=
"userId"
/>
<result
column=
"dept_id"
property=
"deptId"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, user_id, dept_id
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkUserMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkUserMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkUser"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"dept_id"
property=
"deptId"
/>
<result
column=
"name"
property=
"name"
/>
<result
column=
"login_name"
property=
"loginName"
/>
<result
column=
"password"
property=
"password"
/>
<result
column=
"phone"
property=
"phone"
/>
<result
column=
"email"
property=
"email"
/>
<result
column=
"role"
property=
"role"
/>
<result
column=
"type"
property=
"type"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"wx_id"
property=
"wxId"
/>
<result
column=
"level"
property=
"level"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"modify_time"
property=
"modifyTime"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, dept_id, name, login_name, password, phone, email, role, type, status, wx_id, level, create_time, modify_time
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mapper/WorkUserProjectMapper.xml
0 → 100644
View file @
a3ba0140
<?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.WorkUserProjectMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.model.app.WorkUserProject"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"user_id"
property=
"userId"
/>
<result
column=
"project_id"
property=
"projectId"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, user_id, project_id
</sql>
</mapper>
wisenergy-mapper/src/main/resources/mybatis-config.xml
0 → 100644
View file @
a3ba0140
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting
name=
"callSettersOnNulls"
value=
"true"
/>
<!--<setting name="proxyFactory" value="CGLIB"/>-->
<!-- <setting name="lazyLoadingEnabled" value="true"/>-->
<!-- 打印查询语句 -->
<setting
name=
"logImpl"
value=
"STDOUT_LOGGING"
/>
</settings>
<typeHandlers>
<typeHandler
handler=
"cn.wisenergy.common.utils.mybatis.DecimalHandler"
jdbcType=
"DECIMAL"
javaType=
"java.math.BigDecimal"
/>
</typeHandlers>
</configuration>
\ No newline at end of file
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkCollect.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkCollect"
,
description
=
"工时汇总实体类"
)
public
class
WorkCollect
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"userId"
,
value
=
"填报工时人员"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"workDay"
,
value
=
"工时的日期"
)
private
Date
workDay
;
@ApiModelProperty
(
name
=
"totalTime"
,
value
=
"总工时"
)
private
Integer
totalTime
;
@ApiModelProperty
(
name
=
"status"
,
value
=
"状态: 1:已填报 ,2:已审核,3:被驳回"
)
private
Integer
status
;
@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
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkDept"
,
description
=
"工单部门实体类"
)
public
class
WorkDept
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"deptName"
,
value
=
"部门名称(行业应用、平台产品、业务探索、解决方案本部、遵义巴)"
)
private
String
deptName
;
@ApiModelProperty
(
name
=
"oaDeptId"
,
value
=
"OA"
)
private
String
oaDeptId
;
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
name
=
"modifyTime"
,
value
=
"修改时间"
)
private
Date
modifyTime
;
@ApiModelProperty
(
name
=
"deptManagerId"
,
value
=
"部门经理id"
)
private
Integer
deptManagerId
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkHoliday.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkHoliday"
,
description
=
"节假日实体类"
)
public
class
WorkHoliday
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"dayStart"
,
value
=
"开始日期"
)
private
Date
dayStart
;
@ApiModelProperty
(
name
=
"dayEnd"
,
value
=
"结束日期"
)
private
Date
dayEnd
;
@ApiModelProperty
(
name
=
"dayType"
,
value
=
"日期类型:0工作日 1节日"
)
private
Integer
dayType
;
@ApiModelProperty
(
name
=
"des"
,
value
=
"日期说明"
)
private
String
des
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkProject.java
0 → 100644
View file @
a3ba0140
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.math.BigDecimal
;
import
java.util.Date
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkProject"
,
description
=
"工单项目实体类"
)
public
class
WorkProject
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"peojectNum"
,
value
=
"项目编号"
)
private
String
peojectNum
;
@ApiModelProperty
(
name
=
"projectName"
,
value
=
"项目名称"
)
private
String
projectName
;
@ApiModelProperty
(
name
=
"type"
,
value
=
"1:项目,2:商机"
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"managerId"
,
value
=
"项目经理userId"
)
private
Integer
managerId
;
@ApiModelProperty
(
name
=
"managerName"
,
value
=
"项目经理姓名"
)
private
String
managerName
;
@ApiModelProperty
(
name
=
"deptId"
,
value
=
"部门id"
)
private
Integer
deptId
;
@ApiModelProperty
(
name
=
"workTime"
,
value
=
"工时预算"
)
private
Integer
workTime
;
@ApiModelProperty
(
name
=
"costBudget"
,
value
=
"成本预算,以万为单位"
)
private
BigDecimal
costBudget
;
@ApiModelProperty
(
name
=
"projectStatus"
,
value
=
"是否结项:0:结项,1:未结束"
)
private
Integer
isConclusion
;
@ApiModelProperty
(
name
=
"startTime"
,
value
=
"项目开始时间"
)
private
Date
startTime
;
@ApiModelProperty
(
name
=
"endTime"
,
value
=
"项目结束时间"
)
private
Date
endTime
;
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
name
=
"modifyTime"
,
value
=
"修改时间"
)
private
Date
modifyTime
;
@ApiModelProperty
(
name
=
"oaPeojectNumbel"
,
value
=
"oa中的项目编号"
)
private
String
oaPeojectNumbel
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkProjectChange.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkProjectChange"
,
description
=
"项目更改类"
)
public
class
WorkProjectChange
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"projectId;"
,
value
=
"项目编号"
)
private
Integer
projectId
;
@ApiModelProperty
(
name
=
"type"
,
value
=
"1:成本预算变更,2:工时预算变更"
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"modifyBefore"
,
value
=
"修改后预算之前"
)
private
String
modifyBefore
;
@ApiModelProperty
(
name
=
"modifyAfter"
,
value
=
"修改后的预算"
)
private
String
modifyAfter
;
@ApiModelProperty
(
name
=
"reason"
,
value
=
"变更原因"
)
private
String
reason
;
@ApiModelProperty
(
name
=
"changeDate"
,
value
=
"变更日期"
)
private
Date
modifyTime
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkSbumitAdopt.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkSbumitAdopt"
,
description
=
"自动提交审核类"
)
public
class
WorkSbumitAdopt
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"submitTime"
,
value
=
"工时提交时限"
)
private
Integer
submitTime
;
@ApiModelProperty
(
name
=
"autoAdopt"
,
value
=
"工时自动审批时限"
)
private
Integer
autoAdopt
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkTimeOrder.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkTimeOrder"
,
description
=
"工时单实体类"
)
public
class
WorkTimeOrder
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"workId"
,
value
=
"主键id"
)
@TableId
(
value
=
"work_id"
,
type
=
IdType
.
AUTO
)
private
Integer
workId
;
@ApiModelProperty
(
name
=
"userId"
,
value
=
"用户id"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"userName"
,
value
=
"用户名"
)
private
String
userName
;
@ApiModelProperty
(
name
=
"projectId"
,
value
=
"项目id"
)
private
Integer
projectId
;
@ApiModelProperty
(
name
=
"projectName"
,
value
=
"项目名称"
)
private
String
projectName
;
@ApiModelProperty
(
name
=
"deptId"
,
value
=
"用户部门主键"
)
private
Integer
deptId
;
@ApiModelProperty
(
name
=
"workTime"
,
value
=
"工时(整数)"
)
private
Integer
workTime
;
@ApiModelProperty
(
name
=
"workDay"
,
value
=
"工单日期"
)
private
Date
workDay
;
@ApiModelProperty
(
name
=
"status"
,
value
=
"工单审核状态 1:已填报,2:已审批,3:被驳回 4:重新提交 5:自动审核"
)
private
Integer
status
;
@ApiModelProperty
(
name
=
"reviewerId"
,
value
=
"审核人userId"
)
private
Integer
reviewerId
;
@ApiModelProperty
(
name
=
"des"
,
value
=
"工作简述"
)
private
String
des
;
@ApiModelProperty
(
name
=
"reason"
,
value
=
"审核理由"
)
private
String
reason
;
@ApiModelProperty
(
name
=
"type"
,
value
=
"1:项目,2:商机,3:请假,4:调休,5:外部商务、技术交流 6:内部培训、技术准备、管理 7:其他非项目/商机工作"
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"isOvertime"
,
value
=
"工时类型:0:正常工时,1:加班"
)
private
Integer
isOvertime
;
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"工单创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
name
=
"modifyTime"
,
value
=
"工单修改时间"
)
private
Date
modifyTime
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkUser.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkUser"
,
description
=
"用户实体类"
)
public
class
WorkUser
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"deptId"
,
value
=
"部门id"
)
private
Integer
deptId
;
@ApiModelProperty
(
name
=
"name"
,
value
=
"用户名"
)
private
String
name
;
@ApiModelProperty
(
name
=
"loginName"
,
value
=
"登录名"
)
private
String
loginName
;
@ApiModelProperty
(
name
=
"password"
,
value
=
"密码"
)
private
String
password
;
@ApiModelProperty
(
name
=
"phone"
,
value
=
"手机号"
)
private
String
phone
;
@ApiModelProperty
(
name
=
"email"
,
value
=
"邮箱"
)
private
String
email
;
@ApiModelProperty
(
name
=
"role"
,
value
=
"角色(产品、开发、测试、售前)"
)
private
String
role
;
@ApiModelProperty
(
name
=
"type"
,
value
=
"类型(公司、外协)"
)
private
String
type
;
@ApiModelProperty
(
name
=
"status"
,
value
=
"状态(1:在职、0:离职)"
)
private
Integer
status
;
@ApiModelProperty
(
name
=
"wxId"
,
value
=
"微信id"
)
private
String
wxId
;
@ApiModelProperty
(
name
=
"level"
,
value
=
"权限级别:普通用户:0,项目/商机级别:1,部门级别:2,中心级别:3,系统管理员:4"
)
private
Integer
level
;
@ApiModelProperty
(
name
=
"createTime"
,
value
=
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
name
=
"modifyTime"
,
value
=
"更新时间"
)
private
Date
modifyTime
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkUserDept.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkUserDept"
,
description
=
"工单用户部门关联实体类"
)
public
class
WorkUserDept
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"userId"
,
value
=
"用户id"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"deptId"
,
value
=
"部门id"
)
private
Integer
deptId
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/app/WorkUserProject.java
0 → 100644
View file @
a3ba0140
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
;
/**
* <p>
*
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"WorkUserProject"
,
description
=
"工单用户项目关联实体类"
)
public
class
WorkUserProject
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"userId"
,
value
=
"用户id"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"projectId"
,
value
=
"项目id"
)
private
Integer
projectId
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/CalendarDto.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
model
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@ApiModel
(
value
=
"CalendarDto"
,
description
=
"日历展示类"
)
public
class
CalendarDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1678604782365034642L
;
@ApiModelProperty
(
name
=
"userId"
,
value
=
"填报工时人员"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"status"
,
value
=
"状态: 1:已填报 ,2:已审核,3:被驳回"
)
private
Integer
status
;
@ApiModelProperty
(
name
=
"workDay"
,
value
=
"工时的日期"
)
private
Date
workDay
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/CreateWorkOrderDto.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
model
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @ Description : 创建工单dto
* @ Author : lcc
* @ CreateDate : 2020/5/11 15:26
*/
@Data
@ApiModel
(
value
=
"CreateWorkOrderDto"
,
description
=
"创建工单dto"
)
public
class
CreateWorkOrderDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6490634928080769463L
;
/**
* 工单信息列表
*/
@ApiModelProperty
(
name
=
"workOrders"
,
value
=
"工单信息列表"
)
private
List
<
WorkTimeOrderDto
>
workTimeOrders
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/ExamineGroupbyProjectDto.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
model
.
dto
;
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
java.util.Date
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@ApiModel
(
value
=
"ExamineGroupbyProjectDto"
,
description
=
"待审核通过项目分组类"
)
public
class
ExamineGroupbyProjectDto
{
@TableId
(
value
=
"work_id"
,
type
=
IdType
.
AUTO
)
private
Integer
workId
;
@ApiModelProperty
(
name
=
"projectId"
,
value
=
"项目id"
)
private
Integer
projectId
;
@ApiModelProperty
(
name
=
"projectName"
,
value
=
"项目名称"
)
private
String
projectName
;
@ApiModelProperty
(
name
=
"userName"
,
value
=
"用户名"
)
private
String
userName
;
@ApiModelProperty
(
name
=
"workTime"
,
value
=
"工时(整数)"
)
private
Integer
workTime
;
@ApiModelProperty
(
name
=
"workDay"
,
value
=
"工单日期"
)
private
Date
workDay
;
@ApiModelProperty
(
name
=
"isOvertime"
,
value
=
"工时类型:0:正常工时,1:加班"
)
private
Integer
isOvertime
;
@ApiModelProperty
(
name
=
"status"
,
value
=
"工单审核状态 1:已填报,2:已审批,3:被驳回 4:重新提交 5:自动审核"
)
private
Integer
status
;
@ApiModelProperty
(
name
=
"des"
,
value
=
"工作内容"
)
private
String
des
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/ProjectDto.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
model
.
dto
;
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
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"ProjectDto"
,
description
=
"项目id和项目名实体类"
)
public
class
ProjectDto
{
@ApiModelProperty
(
name
=
"id"
,
value
=
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
@ApiModelProperty
(
name
=
"projectName"
,
value
=
"项目名称"
)
private
String
projectName
;
@ApiModelProperty
(
name
=
"type"
,
value
=
"1:项目,2:商机"
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"managerName"
,
value
=
"项目经理"
)
private
String
managerName
;
@ApiModelProperty
private
String
deptManagerName
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/SubtotalDto.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
model
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@ApiModel
(
value
=
"SubtotalDto"
,
description
=
"填报小计"
)
public
class
SubtotalDto
{
@ApiModelProperty
(
name
=
"userId"
,
value
=
"填报工时人员"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"workDay"
,
value
=
"工时的日期"
)
private
Date
workDay
;
@ApiModelProperty
(
name
=
"totalTime"
,
value
=
"今日总工时"
)
private
Integer
totalTime
;
@ApiModelProperty
(
name
=
"reason"
,
value
=
"驳回原因"
)
private
String
reason
;
@ApiModelProperty
(
name
=
"rejectMonth"
,
value
=
"当月被驳回待处理条数"
)
private
Integer
rejectMonth
;
}
wisenergy-model/src/main/java/cn/wisenergy/model/dto/WorkTimeOrderDto.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
model
.
dto
;
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
java.util.Date
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@Data
@ApiModel
(
value
=
"WorkTimeOrderDto"
,
description
=
"工时填报详细类"
)
public
class
WorkTimeOrderDto
{
@ApiModelProperty
(
name
=
"workId"
,
value
=
"主键id"
)
@TableId
(
value
=
"work_id"
,
type
=
IdType
.
AUTO
)
private
Integer
workId
;
@ApiModelProperty
(
name
=
"userId"
,
value
=
"用户id"
)
private
Integer
userId
;
@ApiModelProperty
(
name
=
"userName"
,
value
=
"用户名"
)
private
String
userName
;
@ApiModelProperty
(
name
=
"type"
,
value
=
"1:项目,2:商机,3:请假,4:调休,5:外部商务、技术交流 6:内部培训、技术准备、管理 7:其他非项目/商机工作"
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"status"
,
value
=
"工单审核状态 1:已填报,2:已审批,3:被驳回 4:重新提交 5:自动审核"
)
private
Integer
status
;
@ApiModelProperty
(
name
=
"projectId"
,
value
=
"项目id"
)
private
Integer
projectId
;
@ApiModelProperty
(
name
=
"projectName"
,
value
=
"项目名称"
)
private
String
projectName
;
@ApiModelProperty
(
name
=
"projectManagerName"
,
value
=
"项目经理"
)
private
String
projectManagerName
;
@ApiModelProperty
(
name
=
"workTime"
,
value
=
"工时(整数)"
)
private
Integer
workTime
;
@ApiModelProperty
(
name
=
"workDay"
,
value
=
"工单日期"
)
private
Date
workDay
;
@ApiModelProperty
(
name
=
"des"
,
value
=
"工作简述"
)
private
String
des
;
@ApiModelProperty
(
name
=
"reason"
,
value
=
"驳回理由"
)
private
String
reason
;
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkCollectService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkCollect
;
import
cn.wisenergy.model.dto.CalendarDto
;
import
cn.wisenergy.model.dto.SubtotalDto
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkCollectService
{
/**
* 功能: 查询某年月的填报情况
* @param userId 用户id
* @param workMonth 查询年月
* @return List<CalendarDto>
*/
List
<
CalendarDto
>
calendarMonth
(
Integer
userId
,
Date
workMonth
);
/**
* 功能: 查询某日的填报小计
* @param userId 用户id
* @param workDay 某日
* @return List<CalendarDto>
*/
SubtotalDto
calendarDay
(
Integer
userId
,
Date
workDay
);
/**
* 功能:插入
* @param workCollect
* @return
*/
Boolean
insertCollect
(
WorkCollect
workCollect
);
/**
* 功能:判断当日是否已经填报
* @param userId
* @param workDay
* @return
*/
WorkCollect
getByUserIdAndWorkDay
(
Integer
userId
,
Date
workDay
);
Boolean
update
(
WorkCollect
workCollect
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkDeptService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkDept
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkDeptService
{
WorkDept
getById
(
Integer
id
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkHolidayService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
java.util.Date
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkHolidayService
{
Boolean
isHoliday
(
Date
date
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkProjectChangeService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkProjectChange
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkProjectChangeService
{
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkProjectService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkProject
;
import
cn.wisenergy.model.dto.ProjectDto
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkProjectService
{
/**
* 功能:根据项目id获取项目
* @param id
* @return
*/
WorkProject
getById
(
Integer
id
);
List
<
ProjectDto
>
getNameById
(
List
<
Integer
>
ids
);
/**
* 功能: 查询当前用户所管理的项目
* @param id
* @return
*/
List
<
ProjectDto
>
getByManagerId
(
Integer
id
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkSbumitAdoptService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkSbumitAdopt
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkSbumitAdoptService
{
/**
* 功能: 获取自动审批和默认填报限制
* @param id
* @return
*/
WorkSbumitAdopt
getById
(
Integer
id
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkTimeOrderService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkTimeOrder
;
import
cn.wisenergy.model.dto.CreateWorkOrderDto
;
import
cn.wisenergy.model.dto.ExamineGroupbyProjectDto
;
import
cn.wisenergy.model.dto.SubtotalDto
;
import
cn.wisenergy.model.dto.WorkTimeOrderDto
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkTimeOrderService
{
/**
* 功能; 获取某日填报信息
*
* @param userId
* @param workDay
* @return
*/
List
<
WorkTimeOrder
>
getByDay
(
Integer
userId
,
Date
workDay
);
/**
* 功能:获取某日填报小计
*
* @param userId
* @param workDay
* @return
*/
SubtotalDto
getSubtotalReport
(
Integer
userId
,
Date
workDay
);
/**
* 功能; 获取某日填报信息
*
* @param userId
* @param workDay
* @return DTO
*/
List
<
WorkTimeOrderDto
>
getByDayToDto
(
Integer
userId
,
Date
workDay
);
/**
* 功能:工时填报
*
* @param createWorkOrderDto
* @return
*/
List
<
WorkTimeOrderDto
>
add
(
CreateWorkOrderDto
createWorkOrderDto
);
/**
* 功能: 驳回重新填报
*
* @param createWorkOrderDto
* @return
*/
List
<
WorkTimeOrderDto
>
update
(
CreateWorkOrderDto
createWorkOrderDto
);
/**
* 功能:获取待审批数据
*
* @param userId
* @return
*/
List
<
ExamineGroupbyProjectDto
>
getExamine
(
Integer
userId
,
Integer
projectId
,
Integer
type
,
Integer
page
,
Integer
size
,
Integer
status
);
/**
* 功能:批量审批
*
* @param ids
* @return
*/
Boolean
examinsByIds
(
Integer
reviewerId
,
List
<
Integer
>
ids
);
/**
* 功能: 驳回
*
* @param id
* @param reason
* @return
*/
Boolean
rejectById
(
Integer
reviewerId
,
Integer
id
,
String
reason
);
/**
* 功能:查询驳回未提交的
*
* @param userId
* @return
*/
List
<
WorkTimeOrderDto
>
rejectNotSubmit
(
Integer
userId
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkUserDeptService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkUserDeptService
{
Integer
getDeptIdByUserId
(
Integer
id
);
List
<
Integer
>
getUserIdsByDeptId
(
Integer
deptId
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkUserProjectService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkUserProjectService
{
/**
* 功能:根据userId获取项目id
* @param userId
* @return
*/
List
<
Integer
>
getProjectIdByUserId
(
Integer
userId
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/WorkUserService.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
;
import
cn.wisenergy.model.app.WorkUser
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
public
interface
WorkUserService
{
WorkUser
getById
(
Integer
id
);
WorkUser
getDeptManagerByIds
(
List
<
Integer
>
ids
);
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkCollectServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkCollectMapper
;
import
cn.wisenergy.model.app.WorkCollect
;
import
cn.wisenergy.model.dto.CalendarDto
;
import
cn.wisenergy.model.dto.SubtotalDto
;
import
cn.wisenergy.service.WorkCollectService
;
import
cn.wisenergy.service.WorkTimeOrderService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkCollectServiceImpl
implements
WorkCollectService
{
@Autowired
private
WorkCollectMapper
workCollectMapper
;
@Autowired
private
WorkTimeOrderService
workTimeOrderService
;
/**
* 功能: 查询某年月的填报情况
*
* @param userId 用户id
* @param workMonth 查询年月
* @return List<CalendarDto>
*/
@Override
public
List
<
CalendarDto
>
calendarMonth
(
Integer
userId
,
Date
workMonth
)
{
log
.
info
(
"WorkCollectServiceImpl[]calendarMonth[]input.param.userId:{},workMonth:{}"
,
userId
,
workMonth
);
if
(
null
==
userId
||
StringUtils
.
isEmpty
(
workMonth
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
CalendarDto
>
calendarDtoList
=
workCollectMapper
.
getWorkMonth
(
userId
,
workMonth
);
if
(
CollectionUtils
.
isEmpty
(
calendarDtoList
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
return
calendarDtoList
;
}
/**
* 功能: 查询某日的填报小计
*
* @param userId 用户id
* @param workDay 某日
* @return List<CalendarDto>
*/
@Override
public
SubtotalDto
calendarDay
(
Integer
userId
,
Date
workDay
)
{
log
.
info
(
"WorkCollectServiceImpl[]calendarDay[]input.param.userId:{},workDay:{}"
,
userId
,
workDay
);
if
(
null
==
userId
||
StringUtils
.
isEmpty
(
workDay
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
SubtotalDto
subtotalDto
=
workTimeOrderService
.
getSubtotalReport
(
userId
,
workDay
);
if
(
null
==
subtotalDto
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
return
subtotalDto
;
}
@Override
public
Boolean
insertCollect
(
WorkCollect
workCollect
)
{
log
.
info
(
"WorkCollectServiceImpl[]insertCollect[]input.param.WorkCollect{}"
+
workCollect
);
if
(
null
==
workCollect
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
int
insertRow
=
workCollectMapper
.
inserWorkCollect
(
workCollect
);
if
(
insertRow
==
0
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INSERT_DATA_IS_FAIL
);
}
return
true
;
}
/**
* 功能:判断当日是否已经填报
*
* @param userId
* @param workDay
* @return
*/
@Override
public
WorkCollect
getByUserIdAndWorkDay
(
Integer
userId
,
Date
workDay
)
{
log
.
info
(
"WorkCollectServiceImpl[]getByUserIdAndWorkDay[]input.param.userId:{}, workDay:{}"
+
userId
,
workDay
);
if
(
null
==
userId
||
null
==
workDay
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
QueryWrapper
<
WorkCollect
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"user_id"
,
userId
);
wrapper
.
eq
(
"work_day"
,
workDay
);
WorkCollect
workCollect
=
workCollectMapper
.
selectOne
(
wrapper
);
if
(
null
==
workCollect
)
{
return
null
;
}
return
workCollect
;
}
@Override
public
Boolean
update
(
WorkCollect
workCollect
)
{
log
.
info
(
"WorkCollectServiceImpl[]getByUserIdAndWorkDay[]input.param.workCollect:{}, "
+
workCollect
);
if
(
null
==
workCollect
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
Integer
id
=
getByUserIdAndWorkDay
(
workCollect
.
getUserId
(),
workCollect
.
getWorkDay
()).
getId
();
int
updateRow
=
workCollectMapper
.
updateStatusOrTotaltime
(
id
,
workCollect
.
getStatus
(),
workCollect
.
getTotalTime
());
if
(
updateRow
==
0
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
UPDATE_DATA_FAIL
);
}
return
true
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkDeptServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkDeptMapper
;
import
cn.wisenergy.model.app.WorkDept
;
import
cn.wisenergy.service.WorkDeptService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkDeptServiceImpl
implements
WorkDeptService
{
@Autowired
private
WorkDeptMapper
workDeptMapper
;
@Override
public
WorkDept
getById
(
Integer
id
)
{
log
.
info
(
"WorkDeptServiceImpl[]getById[]input.param.id"
+
id
);
if
(
null
==
id
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkDept
workDept
=
workDeptMapper
.
selectById
(
id
);
if
(
null
==
workDept
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_IS_NULL
);
}
return
workDept
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkHolidayServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.mapper.WorkHolidayMapper
;
import
cn.wisenergy.model.app.WorkHoliday
;
import
cn.wisenergy.service.WorkHolidayService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
public
class
WorkHolidayServiceImpl
implements
WorkHolidayService
{
@Autowired
private
WorkHolidayMapper
workHolidayMapper
;
@Override
public
Boolean
isHoliday
(
Date
date
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
List
<
WorkHoliday
>
workHolidays
=
workHolidayMapper
.
selectList
(
null
);
for
(
WorkHoliday
holiday
:
workHolidays
)
{
if
(!
yearMonthBetween
(
date
,
holiday
.
getDayStart
(),
holiday
.
getDayEnd
()))
{
continue
;
}
if
(
1
==
holiday
.
getDayType
())
{
return
true
;
}
}
if
(
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
)
==
Calendar
.
SUNDAY
||
calendar
.
get
(
Calendar
.
DAY_OF_WEEK
)
==
Calendar
.
SATURDAY
)
{
return
true
;
}
return
false
;
}
// 获取某时间段内的所有日期
public
List
<
Date
>
findDates
(
Date
dBegin
,
Date
dEnd
)
{
List
<
Date
>
lDate
=
new
ArrayList
<>();
lDate
.
add
(
dBegin
);
Calendar
calBegin
=
Calendar
.
getInstance
();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin
.
setTime
(
dBegin
);
Calendar
calEnd
=
Calendar
.
getInstance
();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd
.
setTime
(
dEnd
);
// 测试此日期是否在指定日期之后
while
(
dEnd
.
after
(
calBegin
.
getTime
()))
{
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin
.
add
(
Calendar
.
DAY_OF_MONTH
,
1
);
lDate
.
add
(
calBegin
.
getTime
());
}
return
lDate
;
}
// 判断某个时间是否在时间段内
public
static
boolean
yearMonthBetween
(
Date
nowDate
,
Date
startDate
,
Date
endDate
)
{
long
nowTime
=
nowDate
.
getTime
();
long
startTime
=
startDate
.
getTime
();
long
endTime
=
endDate
.
getTime
();
return
nowTime
>=
startTime
&&
nowTime
<=
endTime
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkProjectChangeServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.service.WorkProjectChangeService
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
public
class
WorkProjectChangeServiceImpl
implements
WorkProjectChangeService
{
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkProjectServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkProjectMapper
;
import
cn.wisenergy.model.app.WorkProject
;
import
cn.wisenergy.model.dto.ProjectDto
;
import
cn.wisenergy.service.WorkProjectService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkProjectServiceImpl
implements
WorkProjectService
{
@Autowired
private
WorkProjectMapper
workProjectMapper
;
/**
* 功能:根据项目id获取项目
*
* @param id
* @return
*/
@Override
public
WorkProject
getById
(
Integer
id
)
{
log
.
info
(
"WorkProjectServiceImpl[]getById[]input.param.id:"
+
id
);
if
(
null
==
id
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkProject
workProject
=
workProjectMapper
.
selectById
(
id
);
if
(
null
==
workProject
)
{
return
null
;
}
return
workProject
;
}
@Override
public
List
<
ProjectDto
>
getNameById
(
List
<
Integer
>
ids
){
log
.
info
(
"WorkProjectServiceImpl[]getNameById[]input.param.ids:"
+
ids
);
if
(
CollectionUtils
.
isEmpty
(
ids
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkProject
>
workProjects
=
workProjectMapper
.
selectBatchIds
(
ids
);
ArrayList
<
ProjectDto
>
list
=
new
ArrayList
<>();
for
(
WorkProject
workProject
:
workProjects
)
{
ProjectDto
projectDto
=
new
ProjectDto
();
BeanUtils
.
copyProperties
(
workProject
,
projectDto
);
list
.
add
(
projectDto
);
}
return
list
;
}
/**
* 功能: 查询当前用户所管理的项目
*
* @param id
* @return
*/
@Override
public
List
<
ProjectDto
>
getByManagerId
(
Integer
id
)
{
log
.
info
(
"WorkProjectServiceImpl[]getByManagerId[]input.param.id:"
+
id
);
if
(
null
==
id
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
QueryWrapper
<
WorkProject
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"manager_id"
,
id
);
List
<
WorkProject
>
workProjects
=
workProjectMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
workProjects
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
MANAGER_NOT_PROJECT
);
}
List
<
ProjectDto
>
projectDtos
=
new
ArrayList
<>();
for
(
WorkProject
workProject
:
workProjects
)
{
ProjectDto
projectDto
=
new
ProjectDto
();
BeanUtils
.
copyProperties
(
workProject
,
projectDto
);
projectDtos
.
add
(
projectDto
);
}
return
projectDtos
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkSbumitAdoptServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkSbumitAdoptMapper
;
import
cn.wisenergy.model.app.WorkSbumitAdopt
;
import
cn.wisenergy.service.WorkSbumitAdoptService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkSbumitAdoptServiceImpl
implements
WorkSbumitAdoptService
{
@Autowired
private
WorkSbumitAdoptMapper
workSbumitAdoptMapper
;
/**
* 功能: 获取自动审批和默认填报限制
*
* @param id
* @return
*/
@Override
public
WorkSbumitAdopt
getById
(
Integer
id
)
{
log
.
info
(
"WorkSbumitAdoptServiceImpl[]getById[]input.param.id:"
+
id
);
if
(
null
==
id
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkSbumitAdopt
workSbumitAdopt
=
workSbumitAdoptMapper
.
selectById
(
id
);
if
(
null
==
workSbumitAdopt
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
RESOURCE_NOT_FOUND
);
}
return
workSbumitAdopt
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.DateUtil
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkTimeOrderMapper
;
import
cn.wisenergy.model.app.*
;
import
cn.wisenergy.model.dto.CreateWorkOrderDto
;
import
cn.wisenergy.model.dto.ExamineGroupbyProjectDto
;
import
cn.wisenergy.model.dto.SubtotalDto
;
import
cn.wisenergy.model.dto.WorkTimeOrderDto
;
import
cn.wisenergy.service.*
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.github.pagehelper.PageHelper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkTimeOrderServiceImpl
implements
WorkTimeOrderService
{
@Autowired
private
WorkTimeOrderMapper
workTimeOrderMapper
;
@Autowired
private
WorkProjectService
workProjectService
;
@Autowired
private
WorkSbumitAdoptService
workSbumitAdoptService
;
@Autowired
private
WorkCollectService
workCollectService
;
@Autowired
private
WorkUserService
workUserService
;
@Autowired
private
WorkHolidayService
workHolidayService
;
@Autowired
private
WorkUserDeptService
workUserDeptService
;
@Autowired
private
WorkUserProjectService
workUserProjectService
;
@Autowired
private
WorkDeptService
workDeptService
;
/**
* 功能; 获取某日被驳回说明
*
* @param userId
* @param workDay
* @return
*/
@Override
public
List
<
WorkTimeOrder
>
getByDay
(
Integer
userId
,
Date
workDay
)
{
log
.
info
(
"WorkTimeOrderServiceImpl[]getDayRejectReason[]input.param.userId:{},workDay:{}"
+
userId
,
workDay
);
if
(
null
==
userId
||
StringUtils
.
isEmpty
(
workDay
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkTimeOrder
>
wtos
=
workTimeOrderMapper
.
getByDay
(
userId
,
workDay
);
if
(
CollectionUtils
.
isEmpty
(
wtos
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
return
wtos
;
}
/**
* 功能:获取某日填报小计
*
* @param userId
* @param workDay
* @return
*/
@Override
public
SubtotalDto
getSubtotalReport
(
Integer
userId
,
Date
workDay
)
{
log
.
info
(
"WorkTimeOrderServiceImpl[]getSubtotalReport[]input.param.userId:{},workDay:{}"
+
userId
,
workDay
);
if
(
null
==
userId
||
StringUtils
.
isEmpty
(
workDay
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkTimeOrder
>
workTimeOrders
=
getByDay
(
userId
,
workDay
);
if
(
CollectionUtils
.
isEmpty
(
workTimeOrders
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
SubtotalDto
subtotalDto
=
new
SubtotalDto
();
int
totalTime
=
0
;
String
reason
=
""
;
int
rejectMonth
=
0
;
subtotalDto
.
setUserId
(
userId
);
subtotalDto
.
setWorkDay
(
workDay
);
for
(
WorkTimeOrder
wto
:
workTimeOrders
)
{
totalTime
+=
wto
.
getWorkTime
();
if
(
null
!=
wto
.
getReason
())
{
reason
=
wto
.
getProjectName
()
+
":"
+
wto
.
getReason
()
+
" "
;
}
if
(
3
==
wto
.
getStatus
())
{
rejectMonth
+=
1
;
}
}
subtotalDto
.
setReason
(
reason
);
subtotalDto
.
setTotalTime
(
totalTime
);
subtotalDto
.
setRejectMonth
(
rejectMonth
);
return
subtotalDto
;
}
/**
* 功能; 获取某日填报信息
*
* @param userId
* @param workDay
* @return DTO
*/
@Override
public
List
<
WorkTimeOrderDto
>
getByDayToDto
(
Integer
userId
,
Date
workDay
)
{
log
.
info
(
"WorkTimeOrderServiceImpl[]getByDayToDto[]input.param.userId:{},workDay:{}"
+
userId
,
workDay
);
List
<
WorkTimeOrder
>
wtos
=
getByDay
(
userId
,
workDay
);
List
<
WorkTimeOrderDto
>
dtos
=
new
ArrayList
<>();
WorkProject
workProject
=
new
WorkProject
();
for
(
WorkTimeOrder
wto
:
wtos
)
{
WorkTimeOrderDto
dto
=
new
WorkTimeOrderDto
();
BeanUtils
.
copyProperties
(
wto
,
dto
);
dto
.
setProjectManagerName
(
getManagerNameByOrder
(
wto
));
dtos
.
add
(
dto
);
}
return
dtos
;
}
/**
* 功能:工时填报
*
* @param dto
* @return
*/
@Transactional
@Override
public
List
<
WorkTimeOrderDto
>
add
(
CreateWorkOrderDto
dto
)
{
log
.
info
(
"WorkTimeOrderServiceImpl[]add[]input.param.CreateWorkOrderDto:{}"
+
dto
);
if
(
null
==
dto
||
CollectionUtils
.
isEmpty
(
dto
.
getWorkTimeOrders
()))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
// 1.检查工单
this
.
checkWorkOrderInfo
(
dto
.
getWorkTimeOrders
());
// 2.保存工单信息
List
<
WorkTimeOrderDto
>
result
=
this
.
saveWorkOrderInfo
(
dto
.
getWorkTimeOrders
());
log
.
info
(
"WorkOrderServiceImpl[]add[]add.success"
);
return
result
;
}
/**
* 功能: 驳回重新填报
*
* @param dto
* @return
*/
@Transactional
@Override
public
List
<
WorkTimeOrderDto
>
update
(
CreateWorkOrderDto
dto
)
{
log
.
info
(
"WorkTimeOrderServiceImpl[]update[]input.param.CreateWorkOrderDto:{}"
+
dto
);
if
(
null
==
dto
||
CollectionUtils
.
isEmpty
(
dto
.
getWorkTimeOrders
()))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkSbumitAdopt
workSbumitAdopt
=
workSbumitAdoptService
.
getById
(
1
);
Integer
submitTime
=
workSbumitAdopt
.
getSubmitTime
();
for
(
WorkTimeOrderDto
workTimeOrderDto
:
dto
.
getWorkTimeOrders
())
{
if
(
null
==
workTimeOrderDto
.
getDes
())
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DES_NOT_NULL
);
}
Date
modifyTime
=
workTimeOrderMapper
.
selectById
(
workTimeOrderDto
.
getWorkId
()).
getModifyTime
();
// 判断是否已经驳回三天
if
(
new
Date
().
getTime
()
-
DateUtil
.
getStartOfDay
(
modifyTime
).
getTime
()
>
submitTime
*
24
*
60
*
60
*
1000
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_DAY_THAN_DATE
);
}
WorkTimeOrder
workTimeOrder
=
new
WorkTimeOrder
();
BeanUtils
.
copyProperties
(
workTimeOrderDto
,
workTimeOrder
);
workTimeOrder
.
setStatus
(
4
);
// 获取用户名
workTimeOrder
.
setUserName
(
workUserService
.
getById
(
workTimeOrder
.
getUserId
()).
getName
());
workTimeOrder
.
setProjectName
(
workProjectService
.
getById
(
workTimeOrder
.
getProjectId
()).
getProjectName
());
// 获取部门id
workTimeOrder
.
setDeptId
(
workUserDeptService
.
getDeptIdByUserId
(
workTimeOrder
.
getUserId
()));
Date
workDay
=
workTimeOrder
.
getWorkDay
();
// 默认正常工时
workTimeOrder
.
setIsOvertime
(
0
);
if
(
workHolidayService
.
isHoliday
(
workDay
))
{
workTimeOrder
.
setIsOvertime
(
1
);
}
int
iRow
=
workTimeOrderMapper
.
updateById
(
workTimeOrder
);
if
(
0
==
iRow
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
UPDATE_DATA_FAIL
);
}
WorkCollect
workCollect
=
new
WorkCollect
();
BeanUtils
.
copyProperties
(
workTimeOrder
,
workCollect
);
workCollect
.
setStatus
(
1
);
workCollectService
.
update
(
workCollect
);
}
return
dto
.
getWorkTimeOrders
();
}
/**
* 功能:获取待审批数据
*
* @param userId
* @return
*/
@Override
public
List
<
ExamineGroupbyProjectDto
>
getExamine
(
Integer
userId
,
Integer
projectId
,
Integer
type
,
Integer
page
,
Integer
size
,
Integer
status
)
{
log
.
info
(
"WorkOrderServiceImpl[]getExamine[]input.param.userId:{},projectId:{},type:{},page:{},size:{},status:{}"
+
userId
,
projectId
,
type
,
page
,
size
,
status
);
if
(
null
==
userId
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
// 判断当前用户是否为管理
WorkUser
user
=
workUserService
.
getById
(
userId
);
if
(
0
==
user
.
getLevel
())
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
// PC端
if
(
null
!=
page
&&
null
!=
size
)
{
return
pageExamine
(
user
,
projectId
,
type
,
page
,
size
,
status
);
}
type
=
null
==
type
?
5
:
type
;
// 部门经理审核
if
(
2
==
user
.
getLevel
())
{
Integer
deptId
=
workUserDeptService
.
getDeptIdByUserId
(
userId
);
QueryWrapper
<
WorkTimeOrder
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"dept_id"
,
deptId
);
wrapper
.
in
(
"status"
,
1
,
4
);
wrapper
.
eq
(
"type"
,
type
);
List
<
WorkTimeOrder
>
workTimeOrders
=
workTimeOrderMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
workTimeOrders
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_END
);
}
List
<
ExamineGroupbyProjectDto
>
egpds
=
new
ArrayList
<>();
for
(
WorkTimeOrder
workTimeOrder
:
workTimeOrders
)
{
ExamineGroupbyProjectDto
dto
=
new
ExamineGroupbyProjectDto
();
BeanUtils
.
copyProperties
(
workTimeOrder
,
dto
);
egpds
.
add
(
dto
);
}
return
egpds
;
}
// 项目经理审核
if
(
null
==
projectId
)
{
projectId
=
workUserProjectService
.
getProjectIdByUserId
(
userId
).
get
(
0
);
return
getExamineGroupbyProjectDto
(
userId
,
projectId
);
}
return
getExamineGroupbyProjectDto
(
userId
,
projectId
);
}
/**
* 功能:批量审批
*
* @param ids
* @return
*/
@Transactional
@Override
public
Boolean
examinsByIds
(
Integer
reviewerId
,
List
<
Integer
>
ids
)
{
log
.
info
(
"WorkOrderServiceImpl[]examinsByIds[]input.param.ids:"
+
ids
);
if
(
CollectionUtils
.
isEmpty
(
ids
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
int
i
=
workTimeOrderMapper
.
updateByIds
(
reviewerId
,
ids
);
if
(
i
==
0
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
UPDATE_DATA_FAIL
);
}
List
<
WorkTimeOrder
>
workTimeOrders
=
workTimeOrderMapper
.
selectBatchIds
(
ids
);
Integer
userId
=
null
;
Date
workDay
=
null
;
for
(
WorkTimeOrder
workTimeOrder
:
workTimeOrders
)
{
userId
=
workTimeOrder
.
getUserId
();
workDay
=
workTimeOrder
.
getWorkDay
();
WorkCollect
workCollect
=
workCollectService
.
getByUserIdAndWorkDay
(
userId
,
workDay
);
if
(
null
==
workCollect
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
workCollect
.
setStatus
(
2
);
workCollect
.
setTotalTime
(
0
);
workCollectService
.
update
(
workCollect
);
}
return
true
;
}
/**
* 功能: 驳回
*
* @param id
* @param reason
* @return
*/
@Transactional
@Override
public
Boolean
rejectById
(
Integer
reviewerId
,
Integer
id
,
String
reason
)
{
log
.
info
(
"WorkOrderServiceImpl[]rejectById[]input.param.reviewerId:{},id:{},reason:{}"
+
reviewerId
,
id
,
reason
);
if
(
null
==
reviewerId
||
null
==
id
||
StringUtils
.
isEmpty
(
reason
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
int
i
=
workTimeOrderMapper
.
updateStatusById
(
reviewerId
,
id
,
reason
);
if
(
i
==
0
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
UPDATE_DATA_FAIL
);
}
WorkTimeOrder
workTimeOrder
=
workTimeOrderMapper
.
selectById
(
id
);
Integer
userId
=
workTimeOrder
.
getUserId
();
Date
workDay
=
workTimeOrder
.
getWorkDay
();
WorkCollect
workCollect
=
workCollectService
.
getByUserIdAndWorkDay
(
userId
,
workDay
);
if
(
null
==
workCollect
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
workCollect
.
setStatus
(
3
);
workCollect
.
setTotalTime
(
0
);
Boolean
aBoolean
=
workCollectService
.
update
(
workCollect
);
return
aBoolean
;
}
/**
* 功能:查询驳回未提交的
*
* @param userId
* @return
*/
@Transactional
@Override
public
List
<
WorkTimeOrderDto
>
rejectNotSubmit
(
Integer
userId
)
{
log
.
info
(
"WorkOrderServiceImpl[]rejectById[]input.param.id:{}"
+
userId
);
if
(
null
==
userId
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkUser
user
=
workUserService
.
getById
(
userId
);
if
(
0
==
user
.
getLevel
())
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
THE_USER_NOT_MANAGER_PLASE_MANAGER_LOGIN
);
}
QueryWrapper
<
WorkTimeOrder
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"reviewer_id"
,
userId
);
wrapper
.
eq
(
"status"
,
3
);
List
<
WorkTimeOrder
>
workTimeOrders
=
workTimeOrderMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
workTimeOrders
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_INFO_IS_NULL
);
}
ArrayList
<
WorkTimeOrderDto
>
dtos
=
new
ArrayList
<>();
for
(
WorkTimeOrder
workTimeOrder
:
workTimeOrders
)
{
WorkTimeOrderDto
dto
=
new
WorkTimeOrderDto
();
BeanUtils
.
copyProperties
(
workTimeOrder
,
dto
);
dto
.
setProjectManagerName
(
getManagerNameByOrder
(
workTimeOrder
));
dtos
.
add
(
dto
);
}
return
dtos
;
}
public
List
<
ExamineGroupbyProjectDto
>
getExamineGroupbyProjectDto
(
Integer
userId
,
Integer
projectId
)
{
QueryWrapper
<
WorkTimeOrder
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"project_id"
,
projectId
);
wrapper
.
in
(
"status"
,
1
,
4
);
wrapper
.
orderByDesc
(
"work_day"
);
List
<
WorkTimeOrder
>
workTimeOrders
=
workTimeOrderMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
workTimeOrders
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_ORDER_END
);
}
String
projectName
=
workTimeOrders
.
get
(
0
).
getProjectName
();
List
<
ExamineGroupbyProjectDto
>
egpds
=
new
ArrayList
<>();
for
(
WorkTimeOrder
workTimeOrder
:
workTimeOrders
)
{
ExamineGroupbyProjectDto
dto
=
new
ExamineGroupbyProjectDto
();
BeanUtils
.
copyProperties
(
workTimeOrder
,
dto
);
egpds
.
add
(
dto
);
}
return
egpds
;
}
public
void
checkWorkOrderInfo
(
List
<
WorkTimeOrderDto
>
list
)
{
log
.
info
(
"WorkOrderServiceImpl[]checkWorkOrderInfo[]input.method"
);
// 1、工单时间不能大于当前天
Date
date
=
new
Date
();
WorkSbumitAdopt
workSbumitAdopt
=
workSbumitAdoptService
.
getById
(
1
);
Integer
submitTime
=
workSbumitAdopt
.
getSubmitTime
();
for
(
WorkTimeOrderDto
dto
:
list
)
{
if
(
null
==
dto
.
getDes
())
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DES_NOT_NULL
);
}
if
(
thanDate
(
dto
.
getWorkDay
()))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_TIME_OVER_NOW_DAY
);
}
// 2、默认设置超过系统默认3天(包括驳回3天)未填报的工时将不能填报
if
(
date
.
getTime
()
-
dto
.
getWorkDay
().
getTime
()
>
submitTime
*
24
*
60
*
60
*
1000
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_DAY_THAN_DATE
);
}
}
//3.每天工时累加不得超过八小时
int
count
=
0
;
for
(
WorkTimeOrderDto
workOrder
:
list
)
{
count
=
count
+
workOrder
.
getWorkTime
();
if
(
count
>
8
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_TIME_NOT_OVER_EIGHT
);
}
}
}
//判断填报是否超过今天
public
boolean
thanDate
(
Date
date
)
{
Date
date1
=
new
Date
();
int
i
=
0
;
i
=
date1
.
compareTo
(
date
);
if
(
i
==
-
1
)
{
return
true
;
}
return
false
;
}
public
List
<
WorkTimeOrderDto
>
saveWorkOrderInfo
(
List
<
WorkTimeOrderDto
>
list
)
{
log
.
info
(
"WorkOrderServiceImpl[]saveWorkOrderInfo[]input.method"
);
int
totalTime
=
0
;
int
status
=
1
;
//根据用户id,获取用户信息
for
(
WorkTimeOrderDto
dto
:
list
)
{
WorkTimeOrder
workTimeOrder
=
new
WorkTimeOrder
();
// 获取用户名
dto
.
setUserName
(
workUserService
.
getById
(
dto
.
getUserId
()).
getName
());
// 获取项目名
if
((
1
==
dto
.
getType
()
||
2
==
dto
.
getType
())
&&
null
==
dto
.
getProjectId
())
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
NO_JOIN_EVERY_PROJECT_PLASE_JION
);
}
if
(
null
!=
dto
.
getProjectId
())
{
dto
.
setProjectName
(
workProjectService
.
getById
(
dto
.
getProjectId
()).
getProjectName
());
}
if
(
null
==
dto
.
getProjectId
())
{
dto
.
setProjectName
(
getTypeName
(
dto
.
getType
()));
}
BeanUtils
.
copyProperties
(
dto
,
workTimeOrder
);
// 获取部门id
workTimeOrder
.
setDeptId
(
workUserDeptService
.
getDeptIdByUserId
(
workTimeOrder
.
getUserId
()));
Date
workDay
=
workTimeOrder
.
getWorkDay
();
// 默认正常工时
workTimeOrder
.
setIsOvertime
(
0
);
if
(
workHolidayService
.
isHoliday
(
workDay
))
{
workTimeOrder
.
setIsOvertime
(
1
);
}
// 如果是请假或者调休直接通过
if
(
3
==
workTimeOrder
.
getType
()
||
4
==
workTimeOrder
.
getType
())
{
status
=
2
;
workTimeOrder
.
setProjectName
(
null
);
workTimeOrder
.
setProjectId
(
null
);
}
workTimeOrder
.
setStatus
(
status
);
int
saveRow
=
workTimeOrderMapper
.
save
(
workTimeOrder
);
if
(
0
==
saveRow
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INSERT_DATA_IS_FAIL
);
}
totalTime
+=
workTimeOrder
.
getWorkTime
();
}
WorkCollect
workCollect
=
new
WorkCollect
();
BeanUtils
.
copyProperties
(
list
.
get
(
0
),
workCollect
);
workCollect
.
setTotalTime
(
totalTime
);
workCollect
.
setStatus
(
status
);
if
(!
workCollectService
.
insertCollect
(
workCollect
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INSERT_DATA_IS_FAIL
);
}
return
list
;
}
public
String
getTypeName
(
Integer
type
)
{
if
(
type
==
5
)
{
return
"外部商务、技术交流"
;
}
if
(
type
==
6
)
{
return
"内部培训、技术准备、管理"
;
}
if
(
type
==
7
)
{
return
"其他非项目/商机工作"
;
}
return
null
;
}
// 审批分页
public
List
<
ExamineGroupbyProjectDto
>
pageExamine
(
WorkUser
user
,
Integer
projectId
,
Integer
type
,
Integer
page
,
Integer
size
,
Integer
status
)
{
log
.
info
(
"WorkOrderServiceImpl[]pageExamine[]input.param.user:{},projectId:{},type:{},page:{},size:{},status:{}"
+
user
,
projectId
,
type
,
page
,
size
,
status
);
PageHelper
.
startPage
(
page
,
size
);
List
<
ExamineGroupbyProjectDto
>
egpds
=
new
ArrayList
<>();
List
<
WorkTimeOrder
>
workTimeOrders
=
null
;
Integer
level
=
user
.
getLevel
();
List
<
Integer
>
types
=
new
ArrayList
<>();
// 项目经理
if
(
1
==
level
)
{
types
=
type
==
null
?
Arrays
.
asList
(
1
,
2
,
3
,
4
)
:
Arrays
.
asList
(
type
);
workTimeOrders
=
workTimeOrderMapper
.
queryByPage
(
status
,
projectId
,
types
);
}
// 部门经理
if
(
2
==
level
)
{
types
=
type
==
null
?
Arrays
.
asList
(
3
,
4
,
5
,
6
)
:
Arrays
.
asList
(
type
);
workTimeOrders
=
workTimeOrderMapper
.
queryByPage
(
status
,
null
,
types
);
}
for
(
WorkTimeOrder
workTimeOrder
:
workTimeOrders
)
{
ExamineGroupbyProjectDto
egpd
=
new
ExamineGroupbyProjectDto
();
BeanUtils
.
copyProperties
(
workTimeOrder
,
egpd
);
egpds
.
add
(
egpd
);
}
return
egpds
;
}
// 根据工单获取管理员
public
String
getManagerNameByOrder
(
WorkTimeOrder
wto
)
{
if
(
1
==
wto
.
getType
()
||
2
==
wto
.
getType
())
{
WorkProject
workProject
=
workProjectService
.
getById
(
wto
.
getProjectId
());
return
workProject
!=
null
?
workProject
.
getManagerName
()
:
""
;
}
if
(
1
!=
wto
.
getType
()
||
2
!=
wto
.
getType
())
{
String
ManagerName
=
workUserService
.
getById
(
workDeptService
.
getById
(
wto
.
getDeptId
()
).
getDeptManagerId
()).
getName
();
return
ManagerName
;
}
return
null
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkUserDeptServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkUserDeptMapper
;
import
cn.wisenergy.model.app.WorkUserDept
;
import
cn.wisenergy.service.WorkUserDeptService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkUserDeptServiceImpl
implements
WorkUserDeptService
{
@Autowired
private
WorkUserDeptMapper
workUserDeptMapper
;
@Override
public
Integer
getDeptIdByUserId
(
Integer
id
)
{
log
.
info
(
"WorkUserDeptServiceImpl[]getDeptIdByUserId[]input.param.id;{}"
+
id
);
if
(
null
==
id
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
QueryWrapper
<
WorkUserDept
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"user_id"
,
id
);
WorkUserDept
workUserDept
=
workUserDeptMapper
.
selectOne
(
wrapper
);
if
(
null
==
workUserDept
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_HAVE_USER
);
}
Integer
deptId
=
workUserDept
.
getDeptId
();
if
(
null
==
deptId
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_HAVE_USER
);
}
return
deptId
;
}
@Override
public
List
<
Integer
>
getUserIdsByDeptId
(
Integer
deptId
)
{
log
.
info
(
"WorkUserDeptServiceImpl[]getUserIdsByDeptId[]input.param.deptId;{}"
+
deptId
);
if
(
null
==
deptId
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
QueryWrapper
<
WorkUserDept
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"dept_id"
,
deptId
);
List
<
WorkUserDept
>
workUserDepts
=
workUserDeptMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
workUserDepts
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_HAVE_USER
);
}
ArrayList
<
Integer
>
userIds
=
new
ArrayList
<>();
for
(
WorkUserDept
workUserDept
:
workUserDepts
)
{
userIds
.
add
(
workUserDept
.
getUserId
());
}
return
userIds
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkUserProjectServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkUserProjectMapper
;
import
cn.wisenergy.model.app.WorkUserProject
;
import
cn.wisenergy.service.WorkUserProjectService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkUserProjectServiceImpl
implements
WorkUserProjectService
{
@Autowired
private
WorkUserProjectMapper
workUserProjectMapper
;
/**
* 功能:根据userId获取项目id
*
* @param userId
* @return
*/
@Override
public
List
<
Integer
>
getProjectIdByUserId
(
Integer
userId
)
{
log
.
info
(
"WorkUserProjectServiceImpl[]getProjectIdByUserId[]input.param.userId:{}"
+
userId
);
if
(
null
==
userId
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
QueryWrapper
<
WorkUserProject
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"user_id"
,
userId
);
List
<
WorkUserProject
>
workUserProjects
=
workUserProjectMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isEmpty
(
workUserProjects
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
WORK_PROJECT_IS_NULL
);
}
ArrayList
<
Integer
>
list
=
new
ArrayList
<>();
for
(
WorkUserProject
project
:
workUserProjects
)
{
list
.
add
(
project
.
getProjectId
());
}
return
list
;
}
}
wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkUserServiceImpl.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
service
.
impl
;
import
cn.wisenergy.common.utils.exception.BASE_RESP_CODE_ENUM
;
import
cn.wisenergy.common.utils.exception.BaseCustomException
;
import
cn.wisenergy.mapper.WorkUserMapper
;
import
cn.wisenergy.model.app.WorkUser
;
import
cn.wisenergy.service.WorkUserService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author chenqi
* @since 2021-01-19
*/
@Service
@Slf4j
public
class
WorkUserServiceImpl
implements
WorkUserService
{
@Autowired
private
WorkUserMapper
workUserMapper
;
@Override
public
WorkUser
getById
(
Integer
id
)
{
log
.
info
(
"WorkUserServiceImpl[]getById[]input.param.id:{}"
+
id
);
if
(
null
==
id
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkUser
workUser
=
workUserMapper
.
selectById
(
id
);
if
(
null
==
workUser
)
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
DEPT_NOT_HAVE_USER
);
}
return
workUser
;
}
@Override
public
WorkUser
getDeptManagerByIds
(
List
<
Integer
>
ids
)
{
log
.
info
(
"WorkUserServiceImpl[]getDeptManagerByIds[]input.param.ids:{}"
+
ids
);
if
(
CollectionUtils
.
isEmpty
(
ids
))
{
throw
new
BaseCustomException
(
BASE_RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
QueryWrapper
<
WorkUser
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
eq
(
"level"
,
2
);
wrapper
.
in
(
"id"
,
ids
);
WorkUser
workUser
=
workUserMapper
.
selectOne
(
wrapper
);
return
workUser
;
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkCollectController.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
web
.
admin
.
controller
.
app
;
import
cn.wisenergy.common.utils.DateUtil
;
import
cn.wisenergy.common.utils.exception.Result
;
import
cn.wisenergy.model.dto.CalendarDto
;
import
cn.wisenergy.model.dto.SubtotalDto
;
import
cn.wisenergy.service.WorkCollectService
;
import
cn.wisenergy.web.admin.controller.common.BaseController
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@RestController
@Slf4j
@Api
(
tags
=
"小程序工单日历模块"
)
@RequestMapping
(
value
=
"/work/collect"
)
public
class
WorkCollectController
extends
BaseController
{
@Autowired
private
WorkCollectService
workCollectService
;
@ApiOperation
(
value
=
"日历->月详细"
,
notes
=
"日历展示"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户id"
,
dataType
=
"int"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"workMonth"
,
value
=
"工单日期(yyyy-MM)"
,
dataType
=
"String"
,
required
=
true
)
})
@GetMapping
(
value
=
"/month"
)
public
Result
<
List
<
CalendarDto
>>
calendarMonth
(
Integer
userId
,
String
workMonth
)
{
log
.
info
(
"WorkCollectController[]calendarMonth[]input.param.userId:{},workMonth:{}"
,
userId
,
workMonth
);
Date
date
=
DateUtil
.
convertStrToDate
(
workMonth
,
"yyyy-MM"
);
List
<
CalendarDto
>
calendarDtos
=
workCollectService
.
calendarMonth
(
userId
,
date
);
return
getResult
(
calendarDtos
);
}
@ApiOperation
(
value
=
"日历->日详细"
,
notes
=
"某日填报情况"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户id"
,
dataType
=
"int"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"workDay"
,
value
=
"工单日期(yyyy-MM-dd)"
,
dataType
=
"String"
,
required
=
true
)
})
@GetMapping
(
value
=
"/day"
)
public
Result
<
SubtotalDto
>
calendarDay
(
Integer
userId
,
String
workDay
)
{
log
.
info
(
"WorkCollectController[]calendarDay[]input.param.userId:{},workDay:{}"
,
userId
,
workDay
);
Date
date
=
DateUtil
.
convertStrToDate
(
workDay
,
"yyyy-MM-dd"
);
SubtotalDto
subtotalDto
=
workCollectService
.
calendarDay
(
userId
,
date
);
return
getResult
(
subtotalDto
);
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkTimeOrderController.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
web
.
admin
.
controller
.
app
;
import
cn.wisenergy.common.utils.DateUtil
;
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.WorkUser
;
import
cn.wisenergy.model.dto.CreateWorkOrderDto
;
import
cn.wisenergy.model.dto.ExamineGroupbyProjectDto
;
import
cn.wisenergy.model.dto.ProjectDto
;
import
cn.wisenergy.model.dto.WorkTimeOrderDto
;
import
cn.wisenergy.service.*
;
import
cn.wisenergy.web.admin.controller.common.BaseController
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
import
java.util.List
;
@RestController
@RequestMapping
(
value
=
"/work/order"
)
@Api
(
tags
=
"工时模块接口"
)
public
class
WorkTimeOrderController
extends
BaseController
{
@Autowired
private
WorkTimeOrderService
workTimeOrderService
;
@Autowired
private
WorkProjectService
workProjectService
;
@Autowired
private
WorkUserProjectService
workUserProjectService
;
@Autowired
private
WorkUserDeptService
workUserDeptService
;
@Autowired
private
WorkUserService
workUserService
;
@ApiOperation
(
value
=
"获取某日工单详情"
,
notes
=
"获取某日工单详情"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户ID"
,
dataType
=
"int"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"workDay"
,
value
=
"工单日期(yyyy-MM-dd)"
,
dataType
=
"String"
,
required
=
true
)
})
@GetMapping
(
value
=
"/query"
)
public
Result
<
List
<
WorkTimeOrderDto
>>
query
(
Integer
userId
,
String
workDay
)
{
log
.
info
(
"WorkOrderController[]query[]input.param.id"
+
userId
,
workDay
);
if
(
null
==
userId
||
StringUtils
.
isEmpty
(
workDay
))
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
Date
date
=
DateUtil
.
convertStrToDate
(
workDay
,
"yyyy-MM-dd"
);
List
<
WorkTimeOrderDto
>
dtos
=
workTimeOrderService
.
getByDayToDto
(
userId
,
date
);
return
getResult
(
dtos
);
}
@ApiOperation
(
value
=
"工时填报"
,
notes
=
"工时填报"
,
httpMethod
=
"POST"
)
@ApiImplicitParam
(
name
=
"dto"
,
value
=
"创建工单dto"
,
dataType
=
"CreateWorkOrderDto"
)
@PostMapping
(
value
=
"/add"
)
public
Result
<
List
<
WorkTimeOrderDto
>>
add
(
@RequestBody
CreateWorkOrderDto
dto
)
{
log
.
info
(
"WorkTimeOrderController[]add[]input.param"
+
dto
);
if
(
null
==
dto
||
CollectionUtils
.
isEmpty
(
dto
.
getWorkTimeOrders
()))
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkTimeOrderDto
>
workOrderList
=
workTimeOrderService
.
add
(
dto
);
return
getResult
(
workOrderList
);
}
@ApiOperation
(
value
=
"工时驳回重新填报"
,
notes
=
"工时驳回重新填报"
,
httpMethod
=
"PUT"
)
@ApiImplicitParam
(
name
=
"dto"
,
value
=
"创建工单dto"
,
dataType
=
"CreateWorkOrderDto"
)
@PutMapping
(
value
=
"/update"
)
public
Result
<
List
<
WorkTimeOrderDto
>>
update
(
@RequestBody
CreateWorkOrderDto
dto
)
{
log
.
info
(
"WorkTimeOrderController[]update[]input.param"
+
dto
);
if
(
null
==
dto
||
CollectionUtils
.
isEmpty
(
dto
.
getWorkTimeOrders
()))
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkTimeOrderDto
>
updateData
=
workTimeOrderService
.
update
(
dto
);
return
getResult
(
updateData
);
}
@ApiOperation
(
value
=
"查询待审批"
,
notes
=
"查询待审批"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户id"
,
dataType
=
"int"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"projectId"
,
value
=
"项目id,不给就默认项目"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
"type"
,
value
=
"给部门经理:工单类型type(5,6,7)"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
"page"
,
value
=
"PC端当前页"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
"size"
,
value
=
"PC端一页多少条记录"
,
dataType
=
"int"
),
@ApiImplicitParam
(
name
=
"status"
,
value
=
"PC端审批状态"
,
dataType
=
"int"
),
})
@GetMapping
(
value
=
"/getExamine"
)
public
Result
<
List
<
ExamineGroupbyProjectDto
>>
getExamine
(
Integer
userId
,
Integer
projectId
,
Integer
type
,
Integer
page
,
Integer
size
,
Integer
status
)
{
log
.
info
(
"WorkTimeOrderController[]getExamine[]input.param.userId:{},projectId:{},type:{},page:{},size:{},status:{}"
+
userId
,
projectId
,
type
,
page
,
size
,
status
);
if
(
null
==
userId
)
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
ExamineGroupbyProjectDto
>
examines
=
workTimeOrderService
.
getExamine
(
userId
,
projectId
,
type
,
page
,
size
,
status
);
return
getResult
(
examines
);
}
@ApiOperation
(
value
=
"查询用户的所有项目和部门经理"
,
notes
=
"查询用户的所有项目和部门经理"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户id"
,
dataType
=
"int"
,
required
=
true
)
@GetMapping
(
value
=
"/getproject"
)
public
Result
<
List
<
ProjectDto
>>
getProjectByUserId
(
Integer
userId
)
{
log
.
info
(
"WorkTimeOrderController[]getProjectByUserId[]input.param.userId:{}"
+
userId
);
if
(
null
==
userId
)
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
Integer
>
ids
=
workUserProjectService
.
getProjectIdByUserId
(
userId
);
List
<
ProjectDto
>
list
=
workProjectService
.
getNameById
(
ids
);
Integer
deptId
=
workUserDeptService
.
getDeptIdByUserId
(
userId
);
List
<
Integer
>
idsByDeptId
=
workUserDeptService
.
getUserIdsByDeptId
(
deptId
);
WorkUser
workUser
=
workUserService
.
getDeptManagerByIds
(
idsByDeptId
);
list
.
stream
().
forEach
(
index
->
index
.
setDeptManagerName
(
workUser
.
getName
()));
return
getResult
(
list
);
}
@ApiOperation
(
value
=
"单个或批量审批"
,
notes
=
"单个或批量审批"
,
httpMethod
=
"GET"
)
// @ApiImplicitParam(name = "ids", value = "工单id", dataType = "list", required = true)
@ApiImplicitParam
(
name
=
"reviewerId"
,
value
=
"审核人id"
,
dataType
=
"int"
,
required
=
true
)
@GetMapping
(
value
=
"/examins"
)
public
Result
<
Boolean
>
examinsByIds
(
Integer
reviewerId
,
@RequestParam
List
<
Integer
>
ids
)
{
log
.
info
(
"WorkTimeOrderController[]examinsByIds[]input.param.reviewerId:{},ids:{}"
+
reviewerId
,
ids
);
if
(
null
==
reviewerId
||
CollectionUtils
.
isEmpty
(
ids
))
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
Boolean
aBoolean
=
workTimeOrderService
.
examinsByIds
(
reviewerId
,
ids
);
return
getResult
(
aBoolean
);
}
@ApiOperation
(
value
=
"工单驳回"
,
notes
=
"工单驳回"
,
httpMethod
=
"PUT"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"reviewerId"
,
value
=
"审核人id"
,
dataType
=
"int"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"id"
,
value
=
"工单id"
,
dataType
=
"int"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"reason"
,
value
=
"驳回理由"
,
dataType
=
"String"
,
required
=
true
)
})
@PutMapping
(
value
=
"/reject"
)
public
Result
<
Boolean
>
rejectById
(
Integer
reviewerId
,
Integer
id
,
String
reason
)
{
log
.
info
(
"WorkTimeOrderController[]rejectById[]input.param.reviewerId:{},id:{},reason:{}"
+
reviewerId
,
id
,
reason
);
if
(
null
==
reviewerId
||
null
==
id
||
StringUtils
.
isEmpty
(
reason
))
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
Boolean
aBoolean
=
workTimeOrderService
.
rejectById
(
reviewerId
,
id
,
reason
);
return
getResult
(
aBoolean
);
}
@ApiOperation
(
value
=
"查询驳回未提交的"
,
notes
=
"查询驳回未提交的"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户id"
,
dataType
=
"int"
,
required
=
true
)
@GetMapping
(
value
=
"/nosubmit"
)
public
Result
<
List
<
WorkTimeOrderDto
>>
rejectNotSubmit
(
Integer
userId
)
{
log
.
info
(
"WorkTimeOrderController[]rejectNotSubmit[]input.param.userId:{}"
+
userId
);
if
(
null
==
userId
)
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
List
<
WorkTimeOrderDto
>
workTimeOrderDtos
=
workTimeOrderService
.
rejectNotSubmit
(
userId
);
return
getResult
(
workTimeOrderDtos
);
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkUserController.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
web
.
admin
.
controller
.
app
;
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.WorkUser
;
import
cn.wisenergy.service.WorkUserService
;
import
cn.wisenergy.web.admin.controller.common.BaseController
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
@RestController
@Api
(
tags
=
"用户模块"
)
@Slf4j
public
class
WorkUserController
extends
BaseController
{
@Autowired
private
WorkUserService
workUserService
;
@ApiOperation
(
value
=
"根据id获取用户信息"
,
notes
=
"根据id获取用户信息"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"用户id"
,
dataType
=
"int"
,
required
=
true
)
@GetMapping
(
value
=
"/getUserInfo"
)
public
Result
<
WorkUser
>
getUserInfo
(
Integer
id
)
{
log
.
info
(
"UserController[]getUserInfo[]input.param.id"
+
id
);
if
(
null
==
id
)
{
throw
new
CustomException
(
RESP_CODE_ENUM
.
INPUT_PARAM_IS_NULL
);
}
WorkUser
workUser
=
workUserService
.
getById
(
id
);
return
getResult
(
workUser
);
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/common/BaseController.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
web
.
admin
.
controller
.
common
;
import
cn.wisenergy.common.utils.exception.*
;
import
net.sf.json.JSONObject
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang.exception.ExceptionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.ConversionNotSupportedException
;
import
org.springframework.beans.TypeMismatchException
;
import
org.springframework.http.converter.HttpMessageNotReadableException
;
import
org.springframework.http.converter.HttpMessageNotWritableException
;
import
org.springframework.web.HttpMediaTypeNotAcceptableException
;
import
org.springframework.web.HttpMediaTypeNotSupportedException
;
import
org.springframework.web.HttpRequestMethodNotSupportedException
;
import
org.springframework.web.bind.MissingServletRequestParameterException
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.PrintWriter
;
/**
* 控制器基类
*
* @author wyy
* @date 2019年08月15日
*/
public
abstract
class
BaseController
{
private
static
final
long
serialVersionUID
=
-
6344078923170236539L
;
protected
Logger
log
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
/**
* 应用接口异常处理
*
* @param response Response相应对象
* @param ex
*/
@ResponseBody
@ExceptionHandler
(
Exception
.
class
)
public
void
handleException
(
HttpServletResponse
response
,
Exception
ex
)
{
Class
eClass
=
ex
.
getClass
();
Result
<
Object
>
result
=
new
Result
<>();
result
.
setResult
(
Result
.
RESULT_FLG
.
FAIL
.
getValue
());
if
(!
eClass
.
equals
(
BaseCustomException
.
class
))
{
log
.
error
(
ExceptionUtils
.
getStackTrace
(
ex
));
}
//以下异常中,除注释过的,其他异常可不关注
if
(
eClass
.
equals
(
MissingServletRequestParameterException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
MIS_REQ_PARAM
,
result
);
}
else
if
(
eClass
.
equals
(
TypeMismatchException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
MIS_REQ_PARAM
,
result
);
}
else
if
(
eClass
.
equals
(
HttpMessageNotReadableException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
MIS_REQ_PARAM
,
result
);
}
else
if
(
eClass
.
equals
(
HttpRequestMethodNotSupportedException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
METHOD_NOT_SUPPORTED
,
result
);
}
else
if
(
eClass
.
equals
(
HttpMediaTypeNotAcceptableException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
MEDIA_TYPE_NOT_ACCEPT
,
result
);
}
else
if
(
eClass
.
equals
(
HttpMediaTypeNotSupportedException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
MEDIA_TYPE_NOT_SUPPORTED
,
result
);
}
else
if
(
eClass
.
equals
(
ConversionNotSupportedException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
SERVER_ERROR
,
result
);
}
else
if
(
eClass
.
equals
(
HttpMessageNotWritableException
.
class
))
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
SERVER_ERROR
,
result
);
}
else
if
(
eClass
.
equals
(
BaseCustomException
.
class
))
{
//系统业务异常
addExceptionToMap
((
BaseCustomException
)
ex
,
result
);
}
else
if
(
eClass
.
equals
(
CustomException
.
class
))
{
//系统业务异常
CustomException
ce
=
(
CustomException
)
ex
;
addExceptionToMap
(
new
CustomException
(
ce
.
getErrorCode
(),
ce
.
getMessage
()),
result
);
}
else
{
addResCodeToMap
(
BASE_RESP_CODE_ENUM
.
SERVER_ERROR
,
result
);
}
// 错误相应编码回写
PrintWriter
writer
=
null
;
try
{
response
.
setContentType
(
"application/json; charset=UTF-8"
);
writer
=
response
.
getWriter
();
writer
.
write
(
JSONObject
.
fromObject
(
result
).
toString
());
writer
.
flush
();
}
catch
(
Exception
e
)
{
IOUtils
.
closeQuietly
(
writer
);
log
.
error
(
"接口异常:{}"
,
ExceptionUtils
.
getFullStackTrace
(
e
));
}
}
/**
* 添加系统异常信息到map中
*
* @param responseCodeEnum 错误响应编码枚举类对象
* @param result 响应错误编码集合
*/
protected
void
addResCodeToMap
(
BASE_RESP_CODE_ENUM
responseCodeEnum
,
Result
<
Object
>
result
)
{
result
.
setErrorCode
(
responseCodeEnum
.
getCode
());
result
.
setErrorMsg
(
responseCodeEnum
.
getMsg
());
}
/**
* 添加业务异常信息到map中
*
* @param responseCodeEnum 错误响应编码枚举类对象
* @param result 响应错误编码集合
*/
protected
void
addResCodeToMap
(
RESP_CODE_ENUM
responseCodeEnum
,
Result
<
Object
>
result
)
{
result
.
setErrorCode
(
responseCodeEnum
.
getCode
());
result
.
setErrorMsg
(
responseCodeEnum
.
getMsg
());
}
/**
* 添加异常信息到map中
*
* @param baseCustomException 接口异常类
* @param result 接口异常集合
*/
protected
void
addExceptionToMap
(
BaseCustomException
baseCustomException
,
Result
<
Object
>
result
)
{
result
.
setErrorCode
(
baseCustomException
.
getErrorCode
());
result
.
setErrorMsg
(
baseCustomException
.
getErrorMsg
());
}
/**
* 添加异常信息到map中
*
* @param customException 接口异常类
* @param result 接口异常集合
*/
protected
void
addExceptionToMap
(
CustomException
customException
,
Result
<
Object
>
result
)
{
result
.
setErrorCode
(
customException
.
getErrorCode
());
result
.
setErrorMsg
(
customException
.
getErrorMsg
());
}
/**
* 添加数据到结果对象中
*
* @param data 封装接口集合参数
* @return
*/
public
Result
getResult
(
Object
data
)
{
Result
result
=
new
Result
();
result
.
setResult
(
Result
.
RESULT_FLG
.
SUCCESS
.
getValue
());
result
.
setData
(
data
);
return
result
;
}
}
wisenergy-web-admin/src/main/java/cn/wisenergy/web/config/auto/Examin.java
0 → 100644
View file @
a3ba0140
package
cn
.
wisenergy
.
web
.
config
.
auto
;
/**
* @Authotr:陈奇
* @QQ1799796883
*/
import
cn.wisenergy.common.utils.DateUtil
;
import
cn.wisenergy.mapper.WorkCollectMapper
;
import
cn.wisenergy.mapper.WorkSbumitAdoptMapper
;
import
cn.wisenergy.mapper.WorkTimeOrderMapper
;
import
cn.wisenergy.model.app.WorkCollect
;
import
cn.wisenergy.model.app.WorkSbumitAdopt
;
import
cn.wisenergy.model.app.WorkTimeOrder
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
/**
* 自动审批定时器
*/
@Slf4j
@Configuration
//1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling
// 2.开启定时任务
public
class
Examin
{
@Autowired
private
WorkTimeOrderMapper
workTimeOrderMapper
;
@Autowired
private
WorkCollectMapper
workCollectMapper
;
@Autowired
private
WorkSbumitAdoptMapper
workSbumitAdoptMapper
;
@Scheduled
(
cron
=
"0 0 0 * * ?"
)
public
void
autoExamin
()
{
log
.
info
(
"admin[]config[]auto[]Examin[]autoExamin"
);
WorkSbumitAdopt
workSbumitAdopt
=
workSbumitAdoptMapper
.
selectById
(
1
);
Integer
autoAdopt
=
workSbumitAdopt
.
getAutoAdopt
();
Date
yesterdayDate
=
getAutoExaminDay
(
autoAdopt
);
Date
now
=
DateUtil
.
getToday
();
UpdateWrapper
<
WorkTimeOrder
>
WTOwrapper
=
new
UpdateWrapper
<>();
WTOwrapper
.
eq
(
"status"
,
1
);
WTOwrapper
.
le
(
"work_day"
,
yesterdayDate
);
WorkTimeOrder
workTimeOrder
=
new
WorkTimeOrder
();
workTimeOrder
.
setStatus
(
5
);
workTimeOrder
.
setModifyTime
(
now
);
int
wtoRow
=
workTimeOrderMapper
.
update
(
workTimeOrder
,
WTOwrapper
);
System
.
out
.
println
(
"一共审核:"
+
wtoRow
+
"条工单"
);
WorkCollect
workCollect
=
new
WorkCollect
();
UpdateWrapper
<
WorkCollect
>
wcw
=
new
UpdateWrapper
<>();
wcw
.
eq
(
"status"
,
1
);
wcw
.
le
(
"work_day"
,
yesterdayDate
);
workCollect
.
setStatus
(
2
);
workCollect
.
setModifyTime
(
now
);
int
wcRow
=
workCollectMapper
.
update
(
workCollect
,
wcw
);
System
.
out
.
println
(
"一共审核:"
+
wcRow
+
"条工单"
);
}
public
static
Date
getAutoExaminDay
(
Integer
day
)
{
day
=
-(
day
+
1
);
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
new
Date
());
c
.
add
(
Calendar
.
DATE
,
-
2
);
Date
start
=
c
.
getTime
();
String
qyt
=
format
.
format
(
start
);
System
.
out
.
println
(
qyt
);
Date
date
=
DateUtil
.
convertStrToDate
(
qyt
,
"yyyy-MM-dd"
);
return
date
;
}
}
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