Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 34daae81
由
张少辉
编写于
2026-01-22 11:45:55 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.库存缺料报表增加104服务器库存
1 个父辈
a9f04393
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
48 行增加
和
7 行删除
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/TowerInventoryController.java
src/main/java/com/neotel/smfcore/custom/lizhen/report/bean/dto/TowerInventory.java
src/main/resources/config/application-21088prod.yml
src/main/resources/config/application-21088test.yml
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
查看文件 @
34daae8
...
...
@@ -105,6 +105,9 @@ public class LizhenApi extends DefaultSmfApiListener {
@Value
(
"${api.storageLevelWarningUrl}"
)
private
String
storageLevelWarningUrl
;
@Value
(
"${api.server104InventoryUrl}"
)
private
String
server104InventoryUrl
;
@PostConstruct
public
void
init
(){
fetchGRUrl
=
dataCache
.
getConfigCache
(
"fetchGRUrl"
,
fetchGRUrl
);
...
...
@@ -780,4 +783,15 @@ public class LizhenApi extends DefaultSmfApiListener {
e
.
printStackTrace
();
}
}
public
Map
<
String
,
Integer
>
getServer104Inventory
()
{
Map
<
String
,
Integer
>
resultMap
=
new
HashMap
<>();
try
{
String
result
=
HttpHelper
.
sendGet
(
server104InventoryUrl
);
resultMap
=
JSONObject
.
parseObject
(
result
,
Map
.
class
);
}
catch
(
Exception
e
)
{
return
new
HashMap
<>();
}
return
resultMap
;
}
}
src/main/java/com/neotel/smfcore/custom/lizhen/report/TowerInventoryController.java
查看文件 @
34daae8
...
...
@@ -9,6 +9,7 @@ import com.neotel.smfcore.common.utils.StringUtils;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.storage.bean.InventoryItem
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.custom.lizhen.LizhenApi
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.ReelConsumption
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.ReelConsumptionInventory
;
import
com.neotel.smfcore.custom.lizhen.innerBox.service.manager.IReelConsumptionManager
;
...
...
@@ -45,6 +46,9 @@ public class TowerInventoryController {
@Autowired
private
ITowerInventoryService
towerInventoryService
;
@Autowired
private
LizhenApi
lizhenApi
;
@Scheduled
(
fixedRate
=
1000
*
60
*
1
,
initialDelay
=
1000
*
30
)
public
void
syncTowerInventoryData
()
{
try
{
...
...
@@ -60,8 +64,6 @@ public class TowerInventoryController {
towerInventoryService
.
removeByNoPartNumber
(
partNumberList
);
}
log
.
info
(
"开始同步 Tower 库存数据..."
);
List
<
TowerInventory
>
towerInventoryList
=
getTowerInventoryDetail
(
consumptionList
);
for
(
TowerInventory
towerInventory
:
towerInventoryList
)
{
...
...
@@ -115,7 +117,9 @@ public class TowerInventoryController {
headers
.
add
(
Arrays
.
asList
(
"替代料分组"
));
headers
.
add
(
Arrays
.
asList
(
"需求最小库存盘数"
));
//headers.add(Arrays.asList("需求最大库存盘数"));
headers
.
add
(
Arrays
.
asList
(
"当前库存盘数"
));
headers
.
add
(
Arrays
.
asList
(
"当前料仓库存"
));
headers
.
add
(
Arrays
.
asList
(
"104库存"
));
headers
.
add
(
Arrays
.
asList
(
"总库存"
));
headers
.
add
(
Arrays
.
asList
(
"缺料盘数"
));
headers
.
add
(
Arrays
.
asList
(
"缺料百分比"
));
...
...
@@ -150,6 +154,8 @@ public class TowerInventoryController {
rowData
.
add
(
inv
.
getMinNeedInventory
());
//rowData.add(inv.getMaxNeedInventory());
rowData
.
add
(
inv
.
getCurrentInventory
());
rowData
.
add
(
inv
.
getInventory104
());
rowData
.
add
(
inv
.
getTotalInventory
());
rowData
.
add
(
inv
.
getShortageDisks
());
rowData
.
add
(
String
.
format
(
"%.2f%%"
,
inv
.
getShortagePercentage
()));
...
...
@@ -179,6 +185,11 @@ public class TowerInventoryController {
public
List
<
TowerInventory
>
getTowerInventoryDetail
(
List
<
ReelConsumption
>
reelConsumptionList
)
{
List
<
TowerInventory
>
towerInventoryList
=
new
ArrayList
<>();
Map
<
String
,
Integer
>
server104Inventory
=
lizhenApi
.
getServer104Inventory
();
if
(
server104Inventory
==
null
){
server104Inventory
=
new
HashMap
<>();
}
//key为PartNumber,Value为替代料分组
Map
<
String
,
String
>
partNumberReplaceGroupMap
=
reelConsumptionManager
.
findAllPartNumberByReplaceGroup
();
...
...
@@ -248,6 +259,8 @@ public class TowerInventoryController {
//找到替代料分组,然后计算库存
int
count
=
0
;
int
count104
=
0
;
List
<
String
>
replacePartNumberList
=
new
ArrayList
<>();
replacePartNumberList
.
add
(
towerInventory
.
getPartNumber
());
String
replaceGroup
=
towerInventory
.
getReplaceGroup
();
...
...
@@ -261,16 +274,21 @@ public class TowerInventoryController {
replacePartNumberList
=
replacePartNumberList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
for
(
String
replacePartNumber
:
replacePartNumberList
)
{
count
=
count
+
allPartNumberInventory
.
getOrDefault
(
replacePartNumber
,
0
);
count104
=
count104
+
server104Inventory
.
getOrDefault
(
replacePartNumber
,
0
);
}
towerInventory
.
setCurrentInventory
(
count
);
towerInventory
.
setInventory104
(
count104
);
int
totalCount
=
count
+
count104
;
towerInventory
.
setTotalInventory
(
totalCount
);
// 缺料计算
if
(
minNeedInventory
==
0
)
{
towerInventory
.
setShortageDisks
(
0
);
towerInventory
.
setShortagePercentage
(
0.0
);
}
else
{
int
shortageDisks
=
c
ount
-
minNeedInventory
;
int
shortageDisks
=
totalC
ount
-
minNeedInventory
;
towerInventory
.
setShortageDisks
(
shortageDisks
);
double
percentage
=
(
double
)
shortageDisks
/
minNeedInventory
*
100
;
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/report/bean/dto/TowerInventory.java
查看文件 @
34daae8
...
...
@@ -21,6 +21,10 @@ public class TowerInventory extends BasePo implements Serializable {
private
int
currentInventory
;
private
int
inventory104
;
private
int
totalInventory
;
private
int
shortageDisks
;
//缺料盘数
private
double
shortagePercentage
;
//缺料百分比
...
...
src/main/resources/config/application-21088prod.yml
查看文件 @
34daae8
...
...
@@ -26,4 +26,7 @@ api:
#获取尺寸信息
brandQtyUrl
:
http://10.68.30.22:8082/api/wcs/brandQty
#修改1楼的水位预警信息
storageLevelWarningUrl
:
http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
\ No newline at end of file
storageLevelWarningUrl
:
http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
#查找104服务器的库存
server104InventoryUrl
:
http://10.68.27.104/smf-core/api/material/getAllInventory
\ No newline at end of file
src/main/resources/config/application-21088test.yml
查看文件 @
34daae8
...
...
@@ -27,4 +27,6 @@ api:
#获取尺寸信息
brandQtyUrl
:
http://10.42.220.171:8082/api/mlb/brandQty
#修改1楼的水位预警信息
storageLevelWarningUrl
:
http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
\ No newline at end of file
storageLevelWarningUrl
:
http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
#查找104服务器的库存
server104InventoryUrl
:
http://10.68.27.104/smf-core/api/material/getAllInventory
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论