Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 8f9bd8ca
由
LN
编写于
2023-04-12 13:56:39 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加onlineData表:设备上线离线数据存储
1 个父辈
ef055ec7
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
166 行增加
和
0 行删除
src/main/java/com/neotel/smfcore/core/onlineData/service/dao/IOnlineDataDao.java
src/main/java/com/neotel/smfcore/core/onlineData/service/dao/impl/OnlineDataDaoImpl.java
src/main/java/com/neotel/smfcore/core/onlineData/service/manager/IOnlineDataManager.java
src/main/java/com/neotel/smfcore/core/onlineData/service/manager/impl/OnlineDataManagerImpl.java
src/main/java/com/neotel/smfcore/core/onlineData/service/po/OnlineData.java
src/main/java/com/neotel/smfcore/core/onlineData/service/dao/IOnlineDataDao.java
0 → 100644
查看文件 @
8f9bd8c
package
com
.
neotel
.
smfcore
.
core
.
onlineData
.
service
.
dao
;
import
com.neotel.smfcore.common.base.IBaseDao
;
public
interface
IOnlineDataDao
extends
IBaseDao
{
}
src/main/java/com/neotel/smfcore/core/onlineData/service/dao/impl/OnlineDataDaoImpl.java
0 → 100644
查看文件 @
8f9bd8c
package
com
.
neotel
.
smfcore
.
core
.
onlineData
.
service
.
dao
.
impl
;
import
com.neotel.smfcore.common.base.AbstractBaseDao
;
import
com.neotel.smfcore.core.onlineData.service.dao.IOnlineDataDao
;
import
com.neotel.smfcore.core.onlineData.service.po.OnlineData
;
import
org.springframework.stereotype.Service
;
@Service
public
class
OnlineDataDaoImpl
extends
AbstractBaseDao
implements
IOnlineDataDao
{
@Override
public
Class
getEntityClass
()
{
return
OnlineData
.
class
;
}
}
src/main/java/com/neotel/smfcore/core/onlineData/service/manager/IOnlineDataManager.java
0 → 100644
查看文件 @
8f9bd8c
package
com
.
neotel
.
smfcore
.
core
.
onlineData
.
service
.
manager
;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.core.onlineData.service.po.OnlineData
;
public
interface
IOnlineDataManager
extends
IBaseManager
<
OnlineData
>
{
void
updateOfflineTime
(
String
cid
);
}
src/main/java/com/neotel/smfcore/core/onlineData/service/manager/impl/OnlineDataManagerImpl.java
0 → 100644
查看文件 @
8f9bd8c
package
com
.
neotel
.
smfcore
.
core
.
onlineData
.
service
.
manager
.
impl
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.core.onlineData.service.dao.IOnlineDataDao
;
import
com.neotel.smfcore.core.onlineData.service.manager.IOnlineDataManager
;
import
com.neotel.smfcore.core.onlineData.service.po.OnlineData
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
@Slf4j
@Service
public
class
OnlineDataManagerImpl
implements
IOnlineDataManager
{
@Autowired
private
IOnlineDataDao
onlineDataDao
;
@Override
public
OnlineData
get
(
String
id
)
{
return
onlineDataDao
.
findOneById
(
id
);
}
@Override
public
OnlineData
save
(
OnlineData
object
)
throws
ValidateException
{
return
onlineDataDao
.
save
(
object
);
}
@Override
public
void
delete
(
OnlineData
object
)
throws
ValidateException
{
onlineDataDao
.
removeOneById
(
object
.
getId
());
}
@Override
public
PageData
<
OnlineData
>
findByPage
(
Query
query
,
Pageable
pageable
)
{
int
totalCount
=
onlineDataDao
.
countByQuery
(
query
);
List
<
OnlineData
>
list
=
onlineDataDao
.
findByQuery
(
query
,
pageable
);
return
new
PageData
(
list
,
totalCount
);
}
@Override
public
List
<
OnlineData
>
findByQuery
(
Query
query
)
{
return
onlineDataDao
.
findByQuery
(
query
);
}
@Override
public
void
updateOfflineTime
(
String
cid
)
{
Criteria
criteria
=
Criteria
.
where
(
"cid"
).
is
(
cid
).
and
(
"offLineTime"
).
isNull
();
Query
q
=
new
Query
(
criteria
);
onlineDataDao
.
updateFirst
(
q
,
new
Update
().
set
(
"offLineTime"
,
new
Date
()));
}
}
src/main/java/com/neotel/smfcore/core/onlineData/service/po/OnlineData.java
0 → 100644
查看文件 @
8f9bd8c
package
com
.
neotel
.
smfcore
.
core
.
onlineData
.
service
.
po
;
import
com.neotel.smfcore.common.base.BasePo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.io.Serializable
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
@Data
@Document
@NoArgsConstructor
@AllArgsConstructor
public
class
OnlineData
extends
BasePo
implements
Serializable
{
/**
* CID
*/
private
String
cid
;
/**
* 料仓ID
*/
private
String
storageId
;
/**
* 上线时间
*/
private
Date
onlineTime
;
/**
* 离线时间
*/
private
Date
offLineTime
;
public
Map
<
String
,
Long
>
getOnlineMap
()
{
Map
<
String
,
Long
>
map
=
new
HashMap
<>();
//分段获取每天的在线时间
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Calendar
st
=
Calendar
.
getInstance
();
Calendar
ed
=
Calendar
.
getInstance
();
st
.
setTime
(
onlineTime
);
if
(
offLineTime
!=
null
)
{
ed
.
setTime
(
offLineTime
);
}
else
{
ed
.
setTime
(
new
Date
());
}
String
skey
=
sdf
.
format
(
st
.
getTime
());
String
ekey
=
sdf
.
format
(
ed
.
getTime
());
if
(
skey
.
equals
(
ekey
))
{
map
.
put
(
skey
,
ed
.
getTimeInMillis
()
-
st
.
getTimeInMillis
());
}
else
{
long
sTime
=
24
*
60
*
60
*
1000
-
(
st
.
get
(
Calendar
.
HOUR_OF_DAY
)
*
60
*
1000
+
st
.
get
(
Calendar
.
MINUTE
)
*
1000
+
st
.
get
(
Calendar
.
SECOND
));
map
.
put
(
skey
,
sTime
);
sTime
=
24
*
60
*
60
*
1000
-
(
st
.
get
(
Calendar
.
HOUR_OF_DAY
)
*
60
*
1000
+
st
.
get
(
Calendar
.
MINUTE
)
*
1000
+
st
.
get
(
Calendar
.
SECOND
));
map
.
put
(
ekey
,
sTime
);
while
(!
st
.
after
(
ed
))
{
String
currKey
=
sdf
.
format
(
st
.
getTime
());
if
(
currKey
.
equals
(
skey
)
||
currKey
.
equals
(
ekey
))
{
}
else
{
sTime
=
24
*
60
*
60
*
1000
;
map
.
put
(
currKey
,
sTime
);
}
st
.
add
(
Calendar
.
DAY_OF_YEAR
,
1
);
}
}
return
map
;
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论