Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
6cc39b29
提交
6cc39b29
authored
1月 21, 2022
作者:
zhoushaopan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(装备模块): 修改导入数据的判断条件
修改导入数据的判断条件
上级
ec840e9b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
13 行增加
和
23 行删除
+13
-23
DeviceLibraryServiceImpl.java
...device/library/service/impl/DeviceLibraryServiceImpl.java
+13
-23
没有找到文件。
dev-library/src/main/java/com/tykj/dev/device/library/service/impl/DeviceLibraryServiceImpl.java
浏览文件 @
6cc39b29
...
...
@@ -1314,54 +1314,43 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
List
<
DeviceLibrary
>
deviceLibraries
=
deviceLibraryDao
.
findAll
(
predicateBuilder
.
build
());
//报废 退役 销毁
List
<
Integer
>
status
=
new
ArrayList
<>(
Arrays
.
asList
(
5
,
10
,
11
,
12
));
deviceLibraries
=
deviceLibraries
.
stream
().
filter
(
deviceLibrary
->
!
status
.
contains
(
deviceLibrary
.
getLifeStatus
())
&&
deviceLibrary
.
getIsPart
()
==
0
).
collect
(
Collectors
.
toList
());
deviceLibraries
.
forEach
(
DeviceLibrary:
:
setConfigName
);
stopWatch
.
stop
();
log
.
info
(
"条件查询结果集时间为:{}"
,
stopWatch
.
getTotalTimeSeconds
());
//拿到所有的装备id
StopWatch
stopWatch2
=
new
StopWatch
(
"获取装备id集合"
);
stopWatch2
.
start
();
List
<
Integer
>
deviceIds
=
deviceLibraries
.
stream
().
map
(
DeviceLibrary:
:
getId
).
collect
(
Collectors
.
toList
());
stopWatch2
.
stop
();
log
.
info
(
"获取装备id集合时间为:{}"
,
stopWatch2
.
getTotalTimeSeconds
());
//3D位置的map
StopWatch
stopWatch1
=
new
StopWatch
(
"查询和拼接"
);
stopWatch1
.
start
();
Map
<
Integer
,
DeviceLibraryPosition
>
positionMap
=
deviceLibraryPositionService
.
findByDeviceIds
(
deviceIds
).
stream
().
collect
(
toMap
(
DeviceLibraryPosition:
:
getDeviceId
,
Function
.
identity
()));
//取出key 在3d的装备id
// Set<Integer> integers = positionMap.keySet();
//然后就行过滤
// deviceLibraries = deviceLibraries.stream().filter(deviceLibrary -> integers.contains(deviceLibrary.getId()))
// .collect(Collectors.toList());
List
<
AllVO
>
allVOS
=
new
ArrayList
<>();
deviceLibraryPositionService
.
findByDeviceIds
(
deviceIds
).
stream
()
.
collect
(
toMap
(
DeviceLibraryPosition:
:
getDeviceId
,
Function
.
identity
()));
List
<
AllVO
>
allVOS
=
new
ArrayList
<>();
//开始遍历装备
StopWatch
stopWatch3
=
new
StopWatch
(
"开始遍历装备"
);
stopWatch3
.
start
();
deviceLibraries
.
forEach
(
deviceLibrary
->
{
AllVO
allVO
=
new
AllVO
();
//开始赋值
allVO
.
setDeviceLibrary
(
deviceLibrary
);
DeviceLibraryPosition
deviceLibraryPosition
=
positionMap
.
getOrDefault
(
deviceLibrary
.
getId
(),
new
DeviceLibraryPosition
());
if
(
deviceLibraryPosition
!=
null
){
toJson
(
deviceLibraryPosition
);
//TODO 感觉这里可以进行优化 当查询本库房的时候需要转换 查询其他库房的时候不需要进行转换
if
(
queryTheWarehouseVo
.
getStorageLocationId
()
!=
null
){
if
(
deviceLibraryPosition
!=
null
){
toJson
(
deviceLibraryPosition
);
}
}
allVO
.
setDeviceLibraryPosition
(
deviceLibraryPosition
);
allVOS
.
add
(
allVO
);
});
stopWatch3
.
stop
();
log
.
info
(
"遍历装备时间为:{}"
,
stopWatch3
.
getTotalTimeSeconds
());
//如果是出库 只需要地上的 不出库是全部的
Integer
out
=
queryTheWarehouseVo
.
getOut
();
List
<
AllVO
>
pageAllVo
=
new
ArrayList
<>()
;
List
<
AllVO
>
pageAllVo
;
if
(
out
!=
null
){
//说明要出库 只需要地上的
pageAllVo
=
allVOS
.
stream
().
filter
(
allVO
->
{
...
...
@@ -1374,10 +1363,11 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
}
}).
collect
(
Collectors
.
toList
());
}
else
{
pageAllVo
.
addAll
(
allVOS
);
pageAllVo
=
new
ArrayList
<>
(
allVOS
);
}
stopWatch1
.
stop
();
log
.
info
(
"查询和拼接时间:{}"
,
stopWatch1
.
getTotalTimeMillis
()+
"ms"
);
Page
<
AllVO
>
allVOPage
=
PageUtil
.
getPerPage
(
queryTheWarehouseVo
.
getPage
(),
queryTheWarehouseVo
.
getSize
(),
pageAllVo
,
queryTheWarehouseVo
.
getPageable
());
//不分页的数据 如果是单个库房 则不需要分页
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论