Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit bdd22cb3
由
LN
编写于
2023-05-15 14:55:23 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
BUG修改
1 个父辈
bb3bf610
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
36 行增加
和
41 行删除
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/device/util/DataCache.java
查看文件 @
bdd22cb
...
@@ -96,7 +96,8 @@ public class DataCache {
...
@@ -96,7 +96,8 @@ public class DataCache {
/**
/**
* 库位占用Map, key为cid,value为已使用的库位列表
* 库位占用Map, key为cid,value为已使用的库位列表
*/
*/
private
static
Map
<
String
,
List
<
StoragePos
>>
usedPosMap
=
new
ConcurrentHashMap
<>();
private
static
Map
<
String
,
Map
<
String
,
StoragePos
>>
usedPosMap
=
new
ConcurrentHashMap
<>();
/**
/**
* 锡膏料仓冷藏区和回温区使用库位数, key为cid, key为 WarmPos 时value表示回温区使用数量,key为 ColdingPos 时value为冷藏区使用数量
* 锡膏料仓冷藏区和回温区使用库位数, key为cid, key为 WarmPos 时value表示回温区使用数量,key为 ColdingPos 时value为冷藏区使用数量
...
@@ -442,42 +443,34 @@ public class DataCache {
...
@@ -442,42 +443,34 @@ public class DataCache {
* 出库时清除使用库位列表
* 出库时清除使用库位列表
*/
*/
private
void
removeUsedPosList
(
String
cid
,
StoragePos
pos
)
{
private
void
removeUsedPosList
(
String
cid
,
StoragePos
pos
)
{
List
<
StoragePos
>
usedPosNameList
=
getUsedPosList
(
cid
);
Map
<
String
,
StoragePos
>
usedPosNameList
=
getUsedPosList
(
cid
);
usedPosNameList
.
remove
(
pos
.
getPosName
());
// usedPosNameList.remove(posName);
usedPosMap
.
put
(
cid
,
usedPosNameList
);
Iterator
<
StoragePos
>
iterator
=
usedPosNameList
.
iterator
();
List
<
StoragePos
>
posList
=
new
ArrayList
<>();
while
(
iterator
.
hasNext
())
{
StoragePos
book
=
iterator
.
next
();
if
(
book
.
getPosName
()
.
equals
(
pos
.
getPosName
()))
{
iterator
.
remove
();
break
;
}
}
List
<
StoragePos
>
list
=
new
ArrayList
<>();
iterator
.
forEachRemaining
(
list:
:
add
);
usedPosMap
.
put
(
cid
,
list
);
}
}
/**
/**
* 入库时增加使用库位列表
* 入库时增加使用库位列表
*/
*/
private
void
addUsedPosList
(
String
cid
,
StoragePos
pos
)
{
private
void
addUsedPosList
(
String
cid
,
StoragePos
pos
)
{
List
<
StoragePos
>
usedPosList
=
getUsedPosList
(
cid
);
Map
<
String
,
StoragePos
>
usedPosList
=
getUsedPosList
(
cid
);
usedPosList
.
add
(
pos
);
usedPosList
.
put
(
pos
.
getPosName
(),
pos
);
usedPosMap
.
put
(
cid
,
usedPosList
);
usedPosMap
.
put
(
cid
,
usedPosList
);
}
/**
}
/**
* 获取设备所有占用的库位名称列表
* 获取设备所有占用的库位名称列表
*/
*/
public
List
<
StoragePos
>
getUsedPosList
(
String
cid
)
{
public
Map
<
String
,
StoragePos
>
getUsedPosList
(
String
cid
)
{
List
<
StoragePos
>
allPos
=
usedPosMap
.
get
(
cid
);
Map
<
String
,
StoragePos
>
allPos
=
usedPosMap
.
get
(
cid
);
if
(
allPos
==
null
)
{
if
(
allPos
==
null
)
{
allPos
=
new
HashMap
<>();
Storage
storage
=
getStorage
(
cid
);
Storage
storage
=
getStorage
(
cid
);
if
(
storage
!=
null
)
{
if
(
storage
!=
null
)
{
log
.
info
(
"加载["
+
cid
+
"]所有已使用库位到缓存"
);
log
.
info
(
"加载["
+
cid
+
"]所有已使用库位到缓存"
);
allPos
=
storagePosManager
.
findUsedPosNameByStorageId
(
storage
.
getId
());
List
<
StoragePos
>
posList
=
storagePosManager
.
findUsedPosNameByStorageId
(
storage
.
getId
());
// for (StoragePos pos : allPos
) {
for
(
StoragePos
pos
:
posList
)
{
// posNameList.add(pos.getPosName()
);
allPos
.
put
(
pos
.
getPosName
(),
pos
);
//
}
}
usedPosMap
.
put
(
cid
,
allPos
);
usedPosMap
.
put
(
cid
,
allPos
);
}
}
}
}
...
@@ -488,28 +481,30 @@ public class DataCache {
...
@@ -488,28 +481,30 @@ public class DataCache {
*/
*/
public
List
<
String
>
getUsedPosNameList
(
String
cid
)
{
public
List
<
String
>
getUsedPosNameList
(
String
cid
)
{
List
<
String
>
posNameList
=
new
ArrayList
<>();
List
<
String
>
posNameList
=
new
ArrayList
<>();
List
<
StoragePos
>
allPos
=
usedPosMap
.
get
(
cid
);
Map
<
String
,
StoragePos
>
allPos
=
getUsedPosList
(
cid
);
if
(
allPos
==
null
)
{
Storage
storage
=
getStorage
(
cid
);
if
(
storage
!=
null
)
{
log
.
info
(
"加载["
+
cid
+
"]所有已使用库位到缓存"
);
allPos
=
storagePosManager
.
findUsedPosNameByStorageId
(
storage
.
getId
());
usedPosMap
.
put
(
cid
,
allPos
);
for
(
StoragePos
pos
:
allPos
.
values
())
{
}
}
for
(
StoragePos
pos
:
allPos
)
{
posNameList
.
add
(
pos
.
getPosName
());
posNameList
.
add
(
pos
.
getPosName
());
}
}
return
posNameList
;
return
posNameList
;
}
}
public
List
<
List
<
StoragePos
>>
getAllUsedPosMap
()
{
public
List
<
Map
<
String
,
StoragePos
>>
getAllUsedPosMap
()
{
List
<
List
<
StoragePos
>>
posList
=
new
ArrayList
<>(
);
List
<
Map
<
String
,
StoragePos
>>
posList
=
new
ArrayList
<>();
Set
<
String
>
keys
=
allStorage
.
keySet
();
Set
<
String
>
mapKeys
=
usedPosMap
.
keySet
();
for
(
String
m:
mapKeys
)
{
if
(!
keys
.
contains
(
m
))
{
keys
.
add
(
m
);
log
.
error
(
"getAllUsedPosMap CID ["
+
m
+
"] add"
);
}
}
for
(
String
key
:
for
(
String
key
:
allStorage
.
keySet
()
)
{
keys
)
{
List
<
StoragePos
>
list
=
getUsedPosList
(
key
);
Map
<
String
,
StoragePos
>
list
=
getUsedPosList
(
key
);
if
(
list
.
size
()>
0
)
{
if
(
list
.
size
()
>
0
)
{
posList
.
add
(
list
);
posList
.
add
(
list
);
}
}
}
}
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
bdd22cb
...
@@ -299,7 +299,7 @@ public class OrderController {
...
@@ -299,7 +299,7 @@ public class OrderController {
OrderDto
dto
=
orderMapper
.
toDto
(
liteOrder
);
OrderDto
dto
=
orderMapper
.
toDto
(
liteOrder
);
List
<
LiteOrderItem
>
orderItemDtos
=
liteOrder
.
getOrderItems
();
List
<
LiteOrderItem
>
orderItemDtos
=
liteOrder
.
getOrderItems
();
List
<
OrderItemDto
>
dtos
=
new
ArrayList
<>();
List
<
OrderItemDto
>
dtos
=
new
ArrayList
<>();
List
<
List
<
StoragePos
>>
allPosLists
=
null
;
List
<
Map
<
String
,
StoragePos
>>
allPosLists
=
null
;
for
(
LiteOrderItem
item
:
orderItemDtos
for
(
LiteOrderItem
item
:
orderItemDtos
)
{
)
{
OrderItemDto
orderItemDto
=
orderItemMapper
.
toDto
(
item
);
OrderItemDto
orderItemDto
=
orderItemMapper
.
toDto
(
item
);
...
@@ -321,9 +321,9 @@ public class OrderController {
...
@@ -321,9 +321,9 @@ public class OrderController {
allPosLists
=
dataCache
.
getAllUsedPosMap
();
allPosLists
=
dataCache
.
getAllUsedPosMap
();
}
}
try
{
try
{
for
(
List
<
StoragePos
>
list
:
for
(
Map
<
String
,
StoragePos
>
list
:
allPosLists
)
{
allPosLists
)
{
for
(
StoragePos
pos
:
list
)
{
for
(
StoragePos
pos
:
list
.
values
()
)
{
boolean
isItemPos
=
false
;
boolean
isItemPos
=
false
;
if
(
ObjectUtil
.
isNotEmpty
(
item
.
getRi
()))
{
if
(
ObjectUtil
.
isNotEmpty
(
item
.
getRi
()))
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论