Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f8f41587
由
zshaohui
编写于
2024-12-23 15:42:50 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.缺料导出修改
2.uid出库,库位被禁用了,不允许出库
1 个父辈
a1e75e91
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
58 行增加
和
66 行删除
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
src/main/java/com/neotel/smfcore/custom/lizhen/kafka/service/KafkaService.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/InnerReportController.java
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
查看文件 @
f8f4158
...
...
@@ -198,7 +198,7 @@ public class DeviceController {
}
//料号为335S00571不允许入库
if
(
"335S00571"
.
equals
(
barcode
.
getPartNumber
())
||
"155S00462"
.
equals
(
barcode
.
getPartNumber
())){
throw
new
ValidateException
(
""
,
"335S00571的料号不允许入到智能仓"
);
throw
new
ValidateException
(
""
,
"335S00571
/155S00462
的料号不允许入到智能仓"
);
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/kafka/service/KafkaService.java
查看文件 @
f8f4158
...
...
@@ -380,7 +380,7 @@ public class KafkaService {
for
(
LastStatusInfo
lastStatusInfo
:
lastStatusInfoList
)
{
if
(
errorText
.
equals
(
lastStatusInfo
.
getErrorText
()))
{
//超过1个小时,重新统计
if
(
System
.
currentTimeMillis
()
-
lastStatusInfo
.
getLastSaveTime
()
>=
1000
*
60
*
3
0
)
{
if
(
System
.
currentTimeMillis
()
-
lastStatusInfo
.
getLastSaveTime
()
<
1000
*
60
*
1
0
)
{
hasSameStatus
=
true
;
break
;
}
...
...
@@ -390,9 +390,9 @@ public class KafkaService {
LastStatusInfo
lastStatusInfo
=
new
LastStatusInfo
(
machineId
,
errorCode
,
errorText
,
System
.
currentTimeMillis
());
lastStatusInfoList
.
add
(
lastStatusInfo
);
}
//清理超过
一
个小时的
//清理超过
半
个小时的
lastStatusInfoList
=
lastStatusInfoList
.
stream
()
.
filter
(
lastStatusInfo
->
System
.
currentTimeMillis
()-
lastStatusInfo
.
getLastSaveTime
()
>=
1000
*
60
*
3
0
)
.
filter
(
lastStatusInfo
->
System
.
currentTimeMillis
()-
lastStatusInfo
.
getLastSaveTime
()
<
1000
*
60
*
1
0
)
.
collect
(
Collectors
.
toList
());
lastStatusInfoMap
.
put
(
machineId
,
lastStatusInfoList
);
}
...
...
@@ -406,7 +406,7 @@ public class KafkaService {
for
(
LastStatusInfo
lastStatusInfo
:
lastStatusInfoList
)
{
if
(
errorText
.
equals
(
lastStatusInfo
.
getErrorText
()))
{
//超过1个小时,重新统计
if
(
System
.
currentTimeMillis
()
-
lastStatusInfo
.
getLastSaveTime
()
>=
1000
*
60
*
3
0
)
{
if
(
System
.
currentTimeMillis
()
-
lastStatusInfo
.
getLastSaveTime
()
<
1000
*
60
*
1
0
)
{
log
.
info
(
machineId
+
"的报错信息和上一次相同,跳过"
);
hasSameStatus
=
true
;
break
;
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/report/InnerReportController.java
查看文件 @
f8f4158
...
...
@@ -98,14 +98,39 @@ public class InnerReportController {
public
PageData
lackPicking
(
ReportQueryCondition
queryCondition
,
Pageable
pageable
)
{
List
<
OrderItemDto
>
dtoList
=
new
ArrayList
<>();
String
floor
=
dataCache
.
getCache
(
Constants
.
CACHE_floor
);
List
<
LiteOrderItem
>
lackItems
=
getLackItems
(
liteOrderCache
.
getAllLiteOrder
(),
queryCondition
);
List
<
LiteOrderItem
>
resultLackItems
=
new
ArrayList
<>();
String
line
=
queryCondition
.
getLine
();
String
orderNo
=
queryCondition
.
getOrderNo
();
String
pn
=
queryCondition
.
getPn
();
List
<
LiteOrderItem
>
lackItems
=
liteOrderCache
.
getLackItems
(
liteOrderCache
.
getAllLiteOrder
());
for
(
LiteOrderItem
orderItem
:
lackItems
)
{
if
(
StringUtils
.
isNotBlank
(
line
))
{
if
(!
orderItem
.
getLine
().
contains
(
line
))
{
continue
;
}
}
if
(
StringUtils
.
isNotBlank
(
orderNo
))
{
if
(!
orderItem
.
getOrderNo
().
contains
(
orderNo
))
{
continue
;
}
}
if
(
StringUtils
.
isNotBlank
(
pn
))
{
if
(!
orderItem
.
getPn
().
contains
(
pn
))
{
continue
;
}
}
orderItem
.
setFloor
(
floor
);
orderItem
.
setLackReel
(
1
);
orderItem
.
setLackNum
(
1
);
orderItem
.
setPreWarningTime
(
DateUtil
.
between
(
orderItem
.
getCreateDate
(),
new
Date
(),
DateUnit
.
MINUTE
));
resultLackItems
.
add
(
orderItem
);
}
dtoList
.
addAll
(
orderItemMapper
.
toDto
(
l
ackItems
));
dtoList
.
addAll
(
orderItemMapper
.
toDto
(
resultL
ackItems
));
return
new
PageData
(
dtoList
,
dtoList
.
size
());
}
...
...
@@ -134,8 +159,33 @@ public class InnerReportController {
headers
.
add
(
Arrays
.
asList
(
"累计预警时间(分钟)"
));
List
<
List
<
Object
>>
datas
=
new
ArrayList
<>();
List
<
LiteOrderItem
>
orderItems
=
getLackItems
(
liteOrderCache
.
getAllLiteOrder
(),
queryCondition
);
List
<
LiteOrderItem
>
resultLackItems
=
new
ArrayList
<>();
String
line
=
queryCondition
.
getLine
();
String
orderNo
=
queryCondition
.
getOrderNo
();
String
pn
=
queryCondition
.
getPn
();
List
<
LiteOrderItem
>
orderItems
=
liteOrderCache
.
getLackItems
(
liteOrderCache
.
getAllLiteOrder
());
for
(
LiteOrderItem
orderItem
:
orderItems
)
{
if
(
StringUtils
.
isNotBlank
(
line
))
{
if
(!
orderItem
.
getLine
().
contains
(
line
))
{
continue
;
}
}
if
(
StringUtils
.
isNotBlank
(
orderNo
))
{
if
(!
orderItem
.
getOrderNo
().
contains
(
orderNo
))
{
continue
;
}
}
if
(
StringUtils
.
isNotBlank
(
pn
))
{
if
(!
orderItem
.
getPn
().
contains
(
pn
))
{
continue
;
}
}
resultLackItems
.
add
(
orderItem
);
}
for
(
LiteOrderItem
orderItem
:
resultLackItems
)
{
List
<
Object
>
dataList
=
new
ArrayList
<>();
dataList
.
add
(
floor
);
dataList
.
add
(
orderItem
.
getLine
());
...
...
@@ -157,64 +207,6 @@ public class InnerReportController {
FileUtil
.
downloadExcel
(
headers
,
datas
,
response
);
}
private
List
<
LiteOrderItem
>
getLackItems
(
Collection
<
LiteOrder
>
liteOrders
,
ReportQueryCondition
queryCondition
)
{
List
<
LiteOrderItem
>
lackItems
=
new
ArrayList
<>();
//排除虚拟仓的
List
<
String
>
storageIds
=
new
ArrayList
<>();
for
(
Storage
storage
:
dataCache
.
getAllStorage
().
values
())
{
//if (!storage.isVirtual()) {
storageIds
.
add
(
storage
.
getId
());
//}
}
//得到库存信息
Map
<
String
,
InventoryItem
>
inventoryMap
=
dataCache
.
getAllInventory
(
storageIds
,
null
);
if
(
inventoryMap
!=
null
)
{
for
(
LiteOrder
liteOrder
:
liteOrders
)
{
//状态是未关闭的,未出库的
if
(!
liteOrder
.
isClosed
())
{
List
<
LiteOrderItem
>
items
=
liteOrder
.
getOrderItems
();
for
(
LiteOrderItem
orderItem
:
items
)
{
if
(
orderItem
.
getOutReelCount
()
<
orderItem
.
getNeedReelCount
())
{
//判断线别是否相等
String
line
=
queryCondition
.
getLine
();
if
(
StringUtils
.
isNotBlank
(
line
))
{
if
(!
orderItem
.
getLine
().
contains
(
line
))
{
continue
;
}
}
//判断工单号是否一致
String
orderNo
=
queryCondition
.
getOrderNo
();
if
(
StringUtils
.
isNotBlank
(
orderNo
))
{
if
(!
orderItem
.
getOrderNo
().
contains
(
orderNo
))
{
continue
;
}
}
//判断料号是否一致
String
pn
=
queryCondition
.
getPn
();
if
(
StringUtils
.
isNotBlank
(
pn
))
{
if
(!
orderItem
.
getPn
().
contains
(
pn
))
{
continue
;
}
}
InventoryItem
inventoryItem
=
inventoryMap
.
get
(
orderItem
.
getPn
());
if
(
inventoryItem
!=
null
)
{
if
(
inventoryItem
.
getStockReel
()
/*- inventoryItem.getLockReel()*/
-
inventoryItem
.
getBindReel
()
>
0
)
{
inventoryItem
.
setBindReel
(
inventoryItem
.
getBindReel
()
+
1
);
}
else
{
lackItems
.
add
(
orderItem
);
}
inventoryMap
.
put
(
orderItem
.
getPn
(),
inventoryItem
);
}
else
{
lackItems
.
add
(
orderItem
);
}
}
}
}
}
}
return
lackItems
;
}
private
Object
getData
(
Object
data
)
{
return
data
==
null
?
""
:
data
;
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论