Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart-office-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart-office-platform
Commits
3702f229
Commit
3702f229
authored
Dec 27, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加通知
parent
3d1bdbd3
Changes
10
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
2374 additions
and
1409 deletions
+2374
-1409
db/add.sql
db/add.sql
+9
-0
doc/智慧办公系统.docx
doc/智慧办公系统.docx
+0
-0
smart-office-manager-ui/admin/public/favicon.ico
smart-office-manager-ui/admin/public/favicon.ico
+0
-0
smart-office-manager-ui/admin/src/views/basic/set/drawershow.vue
...ffice-manager-ui/admin/src/views/basic/set/drawershow.vue
+10
-1
smart-office-manager/src/main/java/com/mortals/xhx/daemon/task/MeetSwitchTaskImpl.java
.../java/com/mortals/xhx/daemon/task/MeetSwitchTaskImpl.java
+119
-0
smart-office-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMeetStatusTaskImpl.java
...a/com/mortals/xhx/daemon/task/SyncMeetStatusTaskImpl.java
+23
-11
smart-office-manager/src/main/java/com/mortals/xhx/module/basic/model/BasicSetEntity.java
...va/com/mortals/xhx/module/basic/model/BasicSetEntity.java
+58
-50
smart-office-manager/src/main/java/com/mortals/xhx/module/basic/model/BasicSetQuery.java
...ava/com/mortals/xhx/module/basic/model/BasicSetQuery.java
+1205
-755
smart-office-manager/src/main/java/com/mortals/xhx/module/basic/web/BasicSetController.java
.../com/mortals/xhx/module/basic/web/BasicSetController.java
+29
-17
smart-office-manager/src/main/resources/sqlmap/module/basic/BasicSetMapper.xml
...src/main/resources/sqlmap/module/basic/BasicSetMapper.xml
+921
-575
No files found.
db/add.sql
View file @
3702f229
...
...
@@ -76,3 +76,12 @@ ALTER TABLE mortals_xhx_workman ADD COLUMN `filePath` varchar(256) COMMENT
2023
-
09
-
21
-- ----------------------------
ALTER
TABLE
mortals_xhx_workman
ADD
COLUMN
`order`
int
(
4
)
DEFAULT
'1'
COMMENT
'排序,值越大越靠前'
-- ----------------------------
2023
-
12
-
27
-- ----------------------------
ALTER
TABLE
mortals_xhx_basic_set
ADD
COLUMN
`preMeetStart`
tinyint
(
4
)
DEFAULT
'0'
COMMENT
'会议开始前几分钟切换'
ALTER
TABLE
mortals_xhx_basic_set
ADD
COLUMN
`postMeetStart`
tinyint
(
4
)
DEFAULT
'0'
COMMENT
'会议开始后几分钟切换'
ALTER
TABLE
mortals_xhx_basic_set
ADD
COLUMN
`meetEnd`
tinyint
(
4
)
DEFAULT
'0'
COMMENT
'会议结束切换(0.否,1.是)'
doc/智慧办公系统.docx
View file @
3702f229
No preview for this file type
smart-office-manager-ui/admin/public/favicon.ico
0 → 100644
View file @
3702f229
1.12 KB
smart-office-manager-ui/admin/src/views/basic/set/drawershow.vue
View file @
3702f229
...
...
@@ -65,6 +65,12 @@
v-model=
"form.showMeetDesc"
placeholder=
"请输入显示会议室门牌信息自定义内容"
/>
<Field
:span=
"20"
label=
"会议开始前几分钟切换"
prop=
"preMeetStart"
v-model=
"form.preMeetStart"
placeholder=
"请选择会议开始前几分钟切换"
/>
<Field
:span=
"20"
label=
"会议开始后几分钟切换"
prop=
"postMeetStart"
v-model=
"form.postMeetStart"
placeholder=
"请选择会议开始后几分钟切换"
/>
<Field
:span=
"20"
label=
"会议结束切换"
prop=
"meetEnd"
v-model=
"form.meetEnd"
type=
"checkbox"
:enumData=
"dict.meetEnd"
placeholder=
"请选择会议结束切换"
/>
<Field
:span=
"20"
label=
"备注"
...
...
@@ -270,6 +276,9 @@ export default {
showMeet
:
0
,
showMeetDesc
:
""
,
remark
:
""
,
preMeetStart
:
0
,
postMeetStart
:
0
,
meetEnd
:
0
,
};
this
.
resetForm
(
"
form
"
);
},
...
...
smart-office-manager/src/main/java/com/mortals/xhx/daemon/task/MeetSwitchTaskImpl.java
0 → 100644
View file @
3702f229
package
com.mortals.xhx.daemon.task
;
import
cn.hutool.core.date.DateUnit
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.service.ITask
;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.xhx.common.code.FinishMethodEnum
;
import
com.mortals.xhx.common.code.MeetStatusEnum
;
import
com.mortals.xhx.common.pdu.UploadDeviceReq
;
import
com.mortals.xhx.feign.device.IDeviceMessageFeign
;
import
com.mortals.xhx.module.basic.model.BasicSetEntity
;
import
com.mortals.xhx.module.basic.service.BasicSetService
;
import
com.mortals.xhx.module.metting.model.MettingRecordEntity
;
import
com.mortals.xhx.module.metting.model.MettingRecordQuery
;
import
com.mortals.xhx.module.metting.service.MettingRecordService
;
import
com.mortals.xhx.module.room.model.RoomDeviceQuery
;
import
com.mortals.xhx.module.room.model.RoomEntity
;
import
com.sun.org.apache.xerces.internal.dom.PSVIAttrNSImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
/**
* 会议室切换状态
*/
@Slf4j
@Service
(
"MeetSwitchTaskTask"
)
public
class
MeetSwitchTaskImpl
implements
ITaskExcuteService
{
@Autowired
private
MettingRecordService
mettingRecordService
;
@Autowired
private
BasicSetService
basicSetService
;
@Autowired
private
IDeviceMessageFeign
messageFeign
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
log
.
debug
(
"会议室切换状态"
);
BasicSetEntity
basicSetEntity
=
basicSetService
.
selectOne
(
new
BasicSetEntity
());
if
(!
ObjectUtils
.
isEmpty
(
basicSetEntity
))
{
log
.
info
(
"基础未配置"
);
return
;
}
swicthMeet
(
basicSetEntity
);
log
.
debug
(
"会议室切换状态完成"
);
}
private
void
swicthMeet
(
BasicSetEntity
basicSetEntity
)
{
if
(!
ObjectUtils
.
isEmpty
(
basicSetEntity
.
getPreMeetStart
())
&&
basicSetEntity
.
getPreMeetStart
()
>
0
)
{
//会议开始前几分钟 通知设备进行数据更新
MettingRecordQuery
mettingRecordQuery
=
new
MettingRecordQuery
();
//mettingRecordQuery.setFinishMethod(FinishMethodEnum.自动结束.getValue());
mettingRecordQuery
.
setMeetStatus
(
MeetStatusEnum
.
等待中
.
getValue
());
List
<
MettingRecordEntity
>
recordEntities
=
mettingRecordService
.
find
(
mettingRecordQuery
);
for
(
MettingRecordEntity
recordEntity
:
recordEntities
)
{
long
between
=
DateUtil
.
between
(
new
Date
(),
recordEntity
.
getMeetTimeStart
(),
DateUnit
.
MINUTE
);
if
(
between
<=
basicSetEntity
.
getPreMeetStart
())
{
//通知设备进行数据更新 todo
UploadDeviceReq
uploadDeviceReq
=
new
UploadDeviceReq
();
uploadDeviceReq
.
setDeviceCodeList
(
Arrays
.
asList
(
recordEntity
.
getDeviceCode
()));
uploadDeviceReq
.
setAction
(
"preMeetStart"
);
uploadDeviceReq
.
setContent
(
JSON
.
toJSONString
(
recordEntity
));
messageFeign
.
downMsg
(
uploadDeviceReq
);
}
}
if
(!
ObjectUtils
.
isEmpty
(
basicSetEntity
.
getPostMeetStart
())
&&
basicSetEntity
.
getPostMeetStart
()
>
0
)
{
mettingRecordQuery
=
new
MettingRecordQuery
();
mettingRecordQuery
.
setMeetStatus
(
MeetStatusEnum
.
进行中
.
getValue
());
List
<
MettingRecordEntity
>
pendRecordEntities
=
mettingRecordService
.
find
(
mettingRecordQuery
);
for
(
MettingRecordEntity
pendRecordEntity
:
pendRecordEntities
)
{
long
between
=
DateUtil
.
between
(
pendRecordEntity
.
getMeetTimeStart
(),
new
Date
(),
DateUnit
.
MINUTE
);
if
(
between
<=
basicSetEntity
.
getPostMeetStart
())
{
UploadDeviceReq
uploadDeviceReq
=
new
UploadDeviceReq
();
uploadDeviceReq
.
setDeviceCodeList
(
Arrays
.
asList
(
pendRecordEntity
.
getDeviceCode
()));
uploadDeviceReq
.
setAction
(
"postMeet"
);
messageFeign
.
downMsg
(
uploadDeviceReq
);
}
}
}
}
}
@Override
public
void
stopTask
(
ITask
task
)
throws
AppException
{
}
public
static
void
main
(
String
[]
args
)
{
long
between
=
DateUtil
.
between
(
new
Date
(),
DateUtil
.
offsetMinute
(
new
Date
(),
5
),
DateUnit
.
MINUTE
);
System
.
out
.
println
(
between
);
}
}
smart-office-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMeetStatusTaskImpl.java
View file @
3702f229
...
...
@@ -6,13 +6,20 @@ import com.mortals.framework.service.ITask;
import
com.mortals.framework.service.ITaskExcuteService
;
import
com.mortals.xhx.common.code.FinishMethodEnum
;
import
com.mortals.xhx.common.code.MeetStatusEnum
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.common.pdu.UploadDeviceReq
;
import
com.mortals.xhx.feign.device.IDeviceMessageFeign
;
import
com.mortals.xhx.module.basic.model.BasicSetEntity
;
import
com.mortals.xhx.module.basic.service.BasicSetService
;
import
com.mortals.xhx.module.metting.model.MettingRecordEntity
;
import
com.mortals.xhx.module.metting.model.MettingRecordQuery
;
import
com.mortals.xhx.module.metting.service.MettingRecordService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -26,6 +33,12 @@ public class SyncMeetStatusTaskImpl implements ITaskExcuteService {
@Autowired
private
MettingRecordService
mettingRecordService
;
@Autowired
private
IDeviceMessageFeign
messageFeign
;
@Autowired
private
BasicSetService
basicSetService
;
@Override
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
...
...
@@ -37,6 +50,7 @@ public class SyncMeetStatusTaskImpl implements ITaskExcuteService {
private
void
syncMeetStatus
()
{
BasicSetEntity
basicSetEntity
=
basicSetService
.
selectOne
(
new
BasicSetEntity
());
MettingRecordQuery
mettingRecordQuery
=
new
MettingRecordQuery
();
//mettingRecordQuery.setFinishMethod(FinishMethodEnum.自动结束.getValue());
mettingRecordQuery
.
setMeetStatus
(
MeetStatusEnum
.
等待中
.
getValue
());
...
...
@@ -44,23 +58,13 @@ public class SyncMeetStatusTaskImpl implements ITaskExcuteService {
for
(
MettingRecordEntity
recordEntity
:
recordEntities
)
{
if
(
new
Date
().
getTime
()>
recordEntity
.
getMeetTimeStart
().
getTime
())
{
if
(
new
Date
().
getTime
()
>
recordEntity
.
getMeetTimeStart
().
getTime
())
{
//更新状态
recordEntity
.
setMeetStatus
(
MeetStatusEnum
.
进行中
.
getValue
());
recordEntity
.
setUpdateTime
(
new
Date
());
recordEntity
.
setUpdateUserId
(
1L
);
mettingRecordService
.
update
(
recordEntity
);
}
/*
//判断当前时间是否已经在区间范围内,如果在 更新状态
boolean in = DateUtil.isIn(new Date(), recordEntity.getMeetTimeStart(), recordEntity.getMeetTimeEnd());
if (in) {
//更新状态
recordEntity.setMeetStatus(MeetStatusEnum.进行中.getValue());
recordEntity.setUpdateTime(new Date());
recordEntity.setUpdateUserId(1L);
mettingRecordService.update(recordEntity);
}*/
}
mettingRecordQuery
=
new
MettingRecordQuery
();
...
...
@@ -76,6 +80,14 @@ public class SyncMeetStatusTaskImpl implements ITaskExcuteService {
pendRecordEntity
.
setUpdateTime
(
new
Date
());
pendRecordEntity
.
setUpdateUserId
(
1L
);
mettingRecordService
.
update
(
pendRecordEntity
);
//判断基础是否设置关闭切换通知,有则推送
if
(!
ObjectUtils
.
isEmpty
(
basicSetEntity
.
getMeetEnd
())
&&
basicSetEntity
.
getMeetEnd
()
==
YesNoEnum
.
YES
.
getValue
())
{
UploadDeviceReq
uploadDeviceReq
=
new
UploadDeviceReq
();
uploadDeviceReq
.
setDeviceCodeList
(
Arrays
.
asList
(
pendRecordEntity
.
getDeviceCode
()));
uploadDeviceReq
.
setAction
(
"postMeet"
);
messageFeign
.
downMsg
(
uploadDeviceReq
);
}
}
}
...
...
smart-office-manager/src/main/java/com/mortals/xhx/module/basic/model/BasicSetEntity.java
View file @
3702f229
...
...
@@ -2,6 +2,9 @@ package com.mortals.xhx.module.basic.model;
import
java.util.List
;
import
java.util.List
;
import
java.util.ArrayList
;
import
java.math.BigDecimal
;
import
cn.hutool.core.date.DateUtil
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.mortals.framework.annotation.Excel
;
import
com.mortals.framework.model.BaseEntityLong
;
...
...
@@ -9,11 +12,11 @@ import com.mortals.xhx.module.basic.model.vo.BasicSetVo;
import
com.mortals.xhx.module.basic.model.BasicStatusEntity
;
import
lombok.Data
;
/**
* 基础设置实体对象
*
* @author zxfei
* @date 2023-05-23
*/
* 基础设置实体对象
*
* @author zxfei
* @date 2023-12-27
*/
@Data
public
class
BasicSetEntity
extends
BasicSetVo
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -58,6 +61,18 @@ public class BasicSetEntity extends BasicSetVo {
* 备注
*/
private
String
remark
;
/**
* 会议开始前几分钟切换
*/
private
Integer
preMeetStart
;
/**
* 会议开始后几分钟切换
*/
private
Integer
postMeetStart
;
/**
* 会议结束切换(0.否,1.是)
*/
private
Integer
meetEnd
;
/**
* 状态设置信息
*/
...
...
@@ -86,25 +101,18 @@ public class BasicSetEntity extends BasicSetVo {
}
public
void
initAttrValue
(){
this
.
showPhoto
=
0
;
this
.
showName
=
0
;
this
.
showPost
=
0
;
this
.
showWork
=
0
;
this
.
showPhone
=
0
;
this
.
showElect
=
0
;
this
.
showElectDesc
=
""
;
this
.
showMeet
=
0
;
this
.
showMeetDesc
=
""
;
this
.
remark
=
""
;
this
.
preMeetStart
=
0
;
this
.
postMeetStart
=
0
;
this
.
meetEnd
=
0
;
}
}
\ No newline at end of file
smart-office-manager/src/main/java/com/mortals/xhx/module/basic/model/BasicSetQuery.java
View file @
3702f229
This diff is collapsed.
Click to expand it.
smart-office-manager/src/main/java/com/mortals/xhx/module/basic/web/BasicSetController.java
View file @
3702f229
package
com.mortals.xhx.module.basic.web
;
import
com.mortals.framework.annotation.UnAuth
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.base.system.param.service.ParamService
;
import
com.mortals.xhx.common.code.YesNoEnum
;
import
com.mortals.xhx.module.basic.model.BasicSetQuery
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.ObjectUtils
;
...
...
@@ -11,49 +13,59 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
com.mortals.framework.model.Context
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.mortals.framework.web.BaseCRUDJsonBodyMappingController
;
import
com.mortals.xhx.module.basic.model.BasicSetEntity
;
import
com.mortals.xhx.module.basic.service.BasicSetService
;
import
org.apache.commons.lang3.ArrayUtils
;
import
com.mortals.framework.util.StringUtils
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Arrays
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
static
com
.
mortals
.
framework
.
ap
.
SysConstains
.*;
/**
*
* 基础设置
*
* @author zxfei
* @date 2023-05-23
*/
* 基础设置
*
* @author zxfei
* @date 2023-05-23
*/
@RestController
@RequestMapping
(
"basic/set"
)
public
class
BasicSetController
extends
BaseCRUDJsonBodyMappingController
<
BasicSetService
,
BasicSetEntity
,
Long
>
{
public
class
BasicSetController
extends
BaseCRUDJsonBodyMappingController
<
BasicSetService
,
BasicSetEntity
,
Long
>
{
@Autowired
private
ParamService
paramService
;
public
BasicSetController
(){
super
.
setModuleDesc
(
"基础设置"
);
public
BasicSetController
()
{
super
.
setModuleDesc
(
"基础设置"
);
}
@Override
protected
void
init
(
Map
<
String
,
Object
>
model
,
Context
context
)
{
this
.
addDict
(
model
,
"showPhoto"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showPhoto"
));
this
.
addDict
(
model
,
"showName"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showName"
));
this
.
addDict
(
model
,
"showPost"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showPost"
));
this
.
addDict
(
model
,
"showWork"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showWork"
));
this
.
addDict
(
model
,
"showPhone"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showPhone"
));
this
.
addDict
(
model
,
"showElect"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showElect"
));
this
.
addDict
(
model
,
"showMeet"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showMeet"
));
this
.
addDict
(
model
,
"showPhoto"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showPhoto"
));
this
.
addDict
(
model
,
"showName"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showName"
));
this
.
addDict
(
model
,
"showPost"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showPost"
));
this
.
addDict
(
model
,
"showWork"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showWork"
));
this
.
addDict
(
model
,
"showPhone"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showPhone"
));
this
.
addDict
(
model
,
"showElect"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showElect"
));
this
.
addDict
(
model
,
"showMeet"
,
paramService
.
getParamBySecondOrganize
(
"BasicSet"
,
"showMeet"
));
this
.
addDict
(
model
,
"meetEnd"
,
YesNoEnum
.
getEnumMap
());
super
.
init
(
model
,
context
);
}
...
...
@@ -68,7 +80,7 @@ public class BasicSetController extends BaseCRUDJsonBodyMappingController<BasicS
protected
void
saveBefore
(
BasicSetEntity
entity
,
Map
<
String
,
Object
>
model
,
Context
context
)
throws
AppException
{
BasicSetEntity
basicSetEntity
=
this
.
service
.
selectOne
(
new
BasicSetQuery
(),
context
);
if
(!
ObjectUtils
.
isEmpty
(
basicSetEntity
))
{
if
(!
ObjectUtils
.
isEmpty
(
basicSetEntity
))
{
entity
.
setId
(
basicSetEntity
.
getId
());
}
super
.
saveBefore
(
entity
,
model
,
context
);
...
...
smart-office-manager/src/main/resources/sqlmap/module/basic/BasicSetMapper.xml
View file @
3702f229
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment