Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d9427967
由
LN
编写于
2023-07-31 11:16:27 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
API-003 接口修改
1 个父辈
89a087b4
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
81 行增加
和
32 行删除
src/main/java/com/neotel/smfcore/custom/neotel/NeotelController.java
src/main/java/com/neotel/smfcore/custom/neotel/NeotelController.java
查看文件 @
d942796
package
com
.
neotel
.
smfcore
.
custom
.
neotel
;
package
com
.
neotel
.
smfcore
.
custom
.
neotel
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
...
@@ -18,6 +19,7 @@ import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
...
@@ -18,6 +19,7 @@ import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.custom.micron1053.util.MicronDataCache
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.annotation.AnonymousPostMapping
;
import
com.neotel.smfcore.security.annotation.AnonymousPostMapping
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
...
@@ -141,45 +143,92 @@ public class NeotelController {
...
@@ -141,45 +143,92 @@ public class NeotelController {
@ApiOperation
(
"6.3 获取实时库存"
)
@ApiOperation
(
"6.3 获取实时库存"
)
@RequestMapping
(
"/inventory"
)
@RequestMapping
(
"/inventory"
)
@AnonymousAccess
@AnonymousAccess
public
ResultBean
inventory
(
@RequestBody
Map
<
String
,
List
<
String
>>
paramMap
)
{
public
ResultBean
inventory
(
@RequestBody
Map
<
String
,
Object
>
paramMap
)
{
List
<
String
>
partNums
=
paramMap
.
get
(
"partNums"
);
//
List
<
String
>
reelIds
=
paramMap
.
get
(
"reelIds"
);
// "Body=
List
<
String
>
cids
=
paramMap
.
get
(
"towerIds"
);
// {
List
<
String
>
storageIds
=
new
ArrayList
<>();
// ""material"":
if
(
cids
!=
null
){
// {
for
(
String
cid
:
cids
)
{
// ""serialNumList"": [<SerialNum>, <SerialNum>]|null,
Storage
storage
=
dataCache
.
getStorage
(
cid
);
// ""partNumberList"": [<PartNum>, <PartNum>] | null,
if
(
storage
!=
null
){
// }
storageIds
.
add
(
storage
.
getId
());
// }"
}
}
// "Http Status code:
// 200 - Success
// ""{
// ""code"": 0,
// ""data"": [
// {
// ""towerId"": <TowerId>, 料仓名
// ""slot"": <slot>, 库位号
// ""materialStatus"": <MaterialStatus>,Available
// ""material"":
// {
// ""serialNum"": <SerialNum>,
// ""partNumber"": <PartNumber>,
// ""sapItem"": True|False, True
// ""mfgPartNum"": <MfgPartNum>,1P MPN
// ""mfgLotNum"": <MfgLotNum>,1T batch
// ""mfgName"": <MfgName>,21P provider
// ""qty"": <Qty>,
// ""expirationDateStr"": <ExpirationDateStr>,
// ""msLevel"": <MsLevel>,
// ""containerType"": <ContainerType>,
// ""arraySize"": <ArraySize>,
// ""panelNum"": <PanelNum>
// }
// }
// ]
// }"""
//mfg :生产商.
Map
<
String
,
Object
>
material
=(
Map
<
String
,
Object
>)
paramMap
.
get
(
"material"
);
Object
serialNumListStr
=
material
.
get
(
"serialNumList"
);
List
<
String
>
serialNumList
=
new
ArrayList
<>();
if
(
ObjectUtil
.
isNotEmpty
(
serialNumListStr
)){
serialNumList
=
(
List
<
String
>)
serialNumListStr
;
}
Object
partNumberListStr
=
material
.
get
(
"partNumberList"
);
List
<
String
>
partNumberList
=
new
ArrayList
<>();
if
(
ObjectUtil
.
isNotEmpty
(
partNumberListStr
)){
partNumberList
=
(
List
<
String
>)
partNumberListStr
;
}
}
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByBarcodesAndPartNums
(
storageIds
,
partNums
,
reelIds
);
List
<
String
>
storageIds
=
new
ArrayList
<>();
List
<
StoragePos
>
storagePosList
=
storagePosManager
.
findByBarcodesAndPartNums
(
storageIds
,
partNumberList
,
serialNumList
);
if
(
storagePosList
!=
null
)
{
if
(
storagePosList
!=
null
)
{
List
<
Map
<
String
,
Object
>>
resultMapList
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
resultMapList
=
new
ArrayList
<>();
for
(
StoragePos
storagePos
:
storagePosList
)
{
for
(
StoragePos
storagePos
:
storagePosList
)
{
Map
<
String
,
Object
>
objMap
=
new
HashMap
<>();
Storage
storage
=
dataCache
.
getStorageById
(
storagePos
.
getStorageId
());
objMap
.
put
(
"towerId"
,
storage
.
getName
());
objMap
.
put
(
"slot"
,
storagePos
.
getPosName
());
objMap
.
put
(
"materialStatus"
,
"Available"
);
Barcode
barcode
=
storagePos
.
getBarcode
();
Barcode
barcode
=
storagePos
.
getBarcode
();
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
if
(
barcode
!=
null
)
{
if
(
barcode
!=
null
)
{
if
(
barcode
.
getSubCodeList
()
!=
null
&&
!
barcode
.
getSubCodeList
().
isEmpty
())
{
for
(
Barcode
subBarcode
:
barcode
.
getSubCodeList
())
{
resultMap
.
put
(
"serialNum"
,
barcode
.
getBarcode
());
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"partNumber"
,
barcode
.
getPartNumber
());
resultMap
.
put
(
"uid"
,
subBarcode
.
getBarcode
());
resultMap
.
put
(
"sapItem"
,
"True"
);
resultMap
.
put
(
"qty"
,
subBarcode
.
getAmount
());
resultMap
.
put
(
"mfgPartNum"
,
barcode
.
getMpn
());
resultMap
.
put
(
"towerId"
,
storagePos
.
getStorageId
());
resultMap
.
put
(
"mfgLotNum"
,
barcode
.
getBatch
());
resultMap
.
put
(
"location"
,
storagePos
.
getPosName
());
resultMap
.
put
(
"mfgName"
,
barcode
.
getProvider
());
resultMap
.
put
(
"partNum"
,
subBarcode
.
getPartNumber
());
resultMap
.
put
(
"qty"
,
barcode
.
getAmount
());
resultMapList
.
add
(
resultMap
);
resultMap
.
put
(
"expirationDateStr"
,
barcode
.
getExpireDateStr
());
}
resultMap
.
put
(
"msLevel"
,
barcode
.
getMsl
());
}
else
{
String
reelType
=
MicronDataCache
.
GetReelType
(
barcode
.
getPlateSize
(),
barcode
.
getHeight
());
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"containerType"
,
reelType
);
//类型
resultMap
.
put
(
"uid"
,
barcode
.
getBarcode
());
resultMap
.
put
(
"arraySize"
,
barcode
.
getQ1Item
());
//1Q
resultMap
.
put
(
"qty"
,
barcode
.
getAmount
());
resultMap
.
put
(
"panelNum"
,
barcode
.
getQItem
());
//Q
resultMap
.
put
(
"towerId"
,
storagePos
.
getStorageId
());
objMap
.
put
(
"material"
,
resultMap
);
resultMap
.
put
(
"location"
,
storagePos
.
getPosName
());
resultMap
.
put
(
"partNum"
,
barcode
.
getPartNumber
());
resultMapList
.
add
(
resultMap
);
}
}
}
resultMapList
.
add
(
objMap
);
}
}
return
ResultBean
.
newOkResult
(
resultMapList
);
return
ResultBean
.
newOkResult
(
resultMapList
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论