Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0eebc292
由
zshaohui
编写于
2023-03-10 17:06:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
盘点出库优化
1 个父辈
8fe89ed5
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
38 行增加
和
17 行删除
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/InventoryController.java
src/main/java/com/neotel/smfcore/custom/lizhen/agvBox/rest/InventoryController.java
查看文件 @
0eebc29
...
@@ -115,10 +115,12 @@ public class InventoryController {
...
@@ -115,10 +115,12 @@ public class InventoryController {
int
count
=
storagePosManager
.
countByQuery
(
new
Query
(
Criteria
.
where
(
"storageId"
).
is
(
storageId
)));
int
count
=
storagePosManager
.
countByQuery
(
new
Query
(
Criteria
.
where
(
"storageId"
).
is
(
storageId
)));
String
inventoryBatch
=
dataCache
.
getCache
(
INVENTORY_DATA
)
+
""
;
String
inventoryBatch
=
dataCache
.
getCache
(
INVENTORY_DATA
)
+
""
;
if
(
StringUtils
.
isNotBlank
(
inventoryBatch
)
&&
!
"-1"
.
equals
(
inventoryBatch
))
{
if
(
StringUtils
.
isNotBlank
(
inventoryBatch
)
&&
!
"-1"
.
equals
(
inventoryBatch
))
{
List
<
InventoryData
>
dataList
=
inventoryDataManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"inventoryBatch"
).
is
(
inventoryBatch
)
.
and
(
"status"
).
is
(
InventoryStatus
.
FINISHED
.
name
())
));
List
<
InventoryData
>
dataList
=
inventoryDataManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"inventoryBatch"
).
is
(
inventoryBatch
)
/*.and("status").is(InventoryStatus.FINISHED.name())*/
));
if
(
dataList
!=
null
&&
!
dataList
.
isEmpty
())
{
if
(
dataList
!=
null
&&
!
dataList
.
isEmpty
())
{
List
<
String
>
posNameList
=
new
ArrayList
<>();
List
<
String
>
posNameList
=
new
ArrayList
<>();
for
(
InventoryData
data
:
dataList
)
{
for
(
InventoryData
data
:
dataList
)
{
boolean
isFinished
=
isInventoryDataFinshed
(
data
.
getPosName
(),
dataList
);
if
(
isFinished
)
{
if
(
posNameList
.
isEmpty
())
{
if
(
posNameList
.
isEmpty
())
{
posNameList
.
add
(
data
.
getPosName
());
posNameList
.
add
(
data
.
getPosName
());
}
else
{
}
else
{
...
@@ -127,9 +129,10 @@ public class InventoryController {
...
@@ -127,9 +129,10 @@ public class InventoryController {
}
}
}
}
}
}
}
inventoryCount
=
posNameList
.
size
();
inventoryCount
=
posNameList
.
size
();
}
}
finishInventory
=
getFinishInventoryPosName
(
inventoryBatch
);
finishInventory
=
getFinishInventoryPosName
(
inventoryBatch
,
dataList
);
}
}
resultMap
.
put
(
"inventoryCount"
,
inventoryCount
);
resultMap
.
put
(
"inventoryCount"
,
inventoryCount
);
resultMap
.
put
(
"count"
,
count
);
resultMap
.
put
(
"count"
,
count
);
...
@@ -138,27 +141,18 @@ public class InventoryController {
...
@@ -138,27 +141,18 @@ public class InventoryController {
return
ResultBean
.
newOkResult
(
resultMap
);
return
ResultBean
.
newOkResult
(
resultMap
);
}
}
private
List
<
String
>
getFinishInventoryPosName
(
String
inventoryBatch
)
{
private
boolean
isInventoryDataFinshed
(
String
posName
,
List
<
InventoryData
>
dataList
)
{
List
<
String
>
finishPosName
=
new
ArrayList
<>();
List
<
InventoryData
>
dataList
=
inventoryDataManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"inventoryBatch"
).
is
(
inventoryBatch
)));
//获取原始库位
List
<
String
>
oriPosNameList
=
dataList
.
stream
().
map
(
InventoryData:
:
getOriPosName
).
collect
(
Collectors
.
toList
());
oriPosNameList
=
oriPosNameList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
for
(
String
oriPosName
:
oriPosNameList
)
{
boolean
isFinished
=
true
;
boolean
isFinished
=
true
;
for
(
InventoryData
data
:
dataList
)
{
for
(
InventoryData
data
:
dataList
)
{
if
(
data
.
getOriPosName
().
equals
(
oriPosName
)){
if
(
posName
.
equals
(
data
.
getPosName
()
)){
if
(!
data
.
getStatus
().
equals
(
InventoryStatus
.
FINISHED
.
name
())){
if
(!
data
.
getStatus
().
equals
(
InventoryStatus
.
FINISHED
.
name
())){
isFinished
=
false
;
isFinished
=
false
;
break
;
break
;
}
}
}
}
}
}
if
(
isFinished
)
{
finishPosName
.
add
(
oriPosName
);
return
isFinished
;
}
}
return
finishPosName
;
}
}
...
@@ -189,6 +183,7 @@ public class InventoryController {
...
@@ -189,6 +183,7 @@ public class InventoryController {
@RequestMapping
(
"/inventoryEnd"
)
@RequestMapping
(
"/inventoryEnd"
)
@AnonymousAccess
@AnonymousAccess
public
ResultBean
inventoryEnd
(
int
type
)
{
public
ResultBean
inventoryEnd
(
int
type
)
{
log
.
info
(
SecurityUtils
.
getCurrentUsername
()
+
"盘点结束,type为:"
+
type
);
String
inventoryBatch
=
dataCache
.
getCache
(
INVENTORY_DATA
)
+
""
;
String
inventoryBatch
=
dataCache
.
getCache
(
INVENTORY_DATA
)
+
""
;
if
(
StringUtils
.
isBlank
(
inventoryBatch
)
||
"-1"
.
equals
(
inventoryBatch
))
{
if
(
StringUtils
.
isBlank
(
inventoryBatch
)
||
"-1"
.
equals
(
inventoryBatch
))
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"当前没有要盘点的批次"
);
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"当前没有要盘点的批次"
);
...
@@ -221,7 +216,7 @@ public class InventoryController {
...
@@ -221,7 +216,7 @@ public class InventoryController {
}
}
}
}
}
}
dataCache
.
updateCache
(
INVENTORY_DATA
,
-
1
l
);
dataCache
.
updateCache
(
INVENTORY_DATA
,
""
);
return
ResultBean
.
newOkResult
(
""
);
return
ResultBean
.
newOkResult
(
""
);
}
}
...
@@ -301,8 +296,10 @@ public class InventoryController {
...
@@ -301,8 +296,10 @@ public class InventoryController {
}
}
for
(
StoragePos
pos
:
storagePosList
)
{
for
(
StoragePos
pos
:
storagePosList
)
{
log
.
info
(
"盘点出库的库位为:"
+
pos
.
getPosName
());
Barcode
barcode
=
pos
.
getBarcode
();
Barcode
barcode
=
pos
.
getBarcode
();
if
(
barcode
!=
null
)
{
if
(
barcode
!=
null
)
{
log
.
info
(
"盘点出库的物料为:"
+
barcode
.
getBarcode
());
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
barcode
.
setInventory
(
true
);
barcode
.
setInventory
(
true
);
barcode
=
barcodeManager
.
save
(
barcode
);
barcode
=
barcodeManager
.
save
(
barcode
);
...
@@ -390,6 +387,7 @@ public class InventoryController {
...
@@ -390,6 +387,7 @@ public class InventoryController {
public
ResultBean
inventoryReel
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
public
ResultBean
inventoryReel
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
name
=
paramMap
.
get
(
"name"
);
String
name
=
paramMap
.
get
(
"name"
);
String
bacodeStr
=
paramMap
.
get
(
"bacodeStr"
);
String
bacodeStr
=
paramMap
.
get
(
"bacodeStr"
);
log
.
info
(
"盘点人:"
+
SecurityUtils
.
getCurrentUsername
()
+
",工位为:"
+
name
+
",物料编码为:"
+
bacodeStr
);
Station
station
=
StationCacheUtil
.
getStation
(
name
);
Station
station
=
StationCacheUtil
.
getStation
(
name
);
if
(
station
==
null
)
{
if
(
station
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
name
+
"工位信息未上传成功,请重试"
);
return
ResultBean
.
newErrorResult
(-
1
,
""
,
name
+
"工位信息未上传成功,请重试"
);
...
@@ -509,7 +507,7 @@ public class InventoryController {
...
@@ -509,7 +507,7 @@ public class InventoryController {
DataLog
task
=
new
DataLog
(
storage
,
barcode
,
pos
);
DataLog
task
=
new
DataLog
(
storage
,
barcode
,
pos
);
task
.
setType
(
type
);
task
.
setType
(
type
);
task
.
setStatus
(
status
);
task
.
setStatus
(
status
);
//
task.setOperator(SecurityUtils.getCurrentUsername());
task
.
setOperator
(
SecurityUtils
.
getCurrentUsername
());
task
.
setExtendType
(
extendType
);
task
.
setExtendType
(
extendType
);
task
.
setBoxPosName
(
pos
.
getPosName
());
task
.
setBoxPosName
(
pos
.
getPosName
());
taskService
.
addTaskToExecute
(
task
);
taskService
.
addTaskToExecute
(
task
);
...
@@ -689,4 +687,27 @@ public class InventoryController {
...
@@ -689,4 +687,27 @@ public class InventoryController {
//query.fields().include("barcode", "updateDate", "storageId","posName");
//query.fields().include("barcode", "updateDate", "storageId","posName");
return
query
;
return
query
;
}
}
private
List
<
String
>
getFinishInventoryPosName
(
String
inventoryBatch
,
List
<
InventoryData
>
dataList
)
{
List
<
String
>
finishPosName
=
new
ArrayList
<>();
//List<InventoryData> dataList = inventoryDataManager.findByQuery(new Query(Criteria.where("inventoryBatch").is(inventoryBatch)));
//获取原始库位
List
<
String
>
oriPosNameList
=
dataList
.
stream
().
map
(
InventoryData:
:
getOriPosName
).
collect
(
Collectors
.
toList
());
oriPosNameList
=
oriPosNameList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
for
(
String
oriPosName
:
oriPosNameList
)
{
boolean
isFinished
=
true
;
for
(
InventoryData
data
:
dataList
)
{
if
(
data
.
getOriPosName
().
equals
(
oriPosName
)){
if
(!
data
.
getStatus
().
equals
(
InventoryStatus
.
FINISHED
.
name
())){
isFinished
=
false
;
break
;
}
}
}
if
(
isFinished
)
{
finishPosName
.
add
(
oriPosName
);
}
}
return
finishPosName
;
}
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论