Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ffea11d2
由
zshaohui
编写于
2022-09-22 09:17:38 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
立臻接口提交
1 个父辈
e949681c
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
257 行增加
和
0 行删除
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
src/main/java/com/neotel/smfcore/custom/lizhen/rest/LizhenController.java
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
0 → 100644
查看文件 @
ffea11d
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
;
import
com.neotel.smfcore.common.exception.ApiException
;
import
com.neotel.smfcore.common.utils.HttpHelper
;
import
com.neotel.smfcore.common.utils.JsonUtil
;
import
com.neotel.smfcore.core.api.listener.BaseSmfApiListener
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
@Slf4j
public
class
LizhenApi
extends
BaseSmfApiListener
{
@Autowired
private
LiteOrderCache
liteOrderCache
;
//7.获取MES物料数量
public
void
getReelNum
(
String
reelNumUrl
,
String
reelId
){
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"reelId"
,
reelId
);
String
param
=
JsonUtil
.
toJsonStr
(
paramMap
);
log
.
info
(
"获取MES物料数量入参为:"
+
param
);
try
{
String
result
=
HttpHelper
.
postJson
(
reelNumUrl
,
paramMap
);
log
.
info
(
"获取MES物料数量出参为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
}
}
//3.IMES提供接收发料明细接口
public
void
saveReelInfo
(
String
outNotifyUrl
,
DataLog
task
){
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
String
sourceId
=
task
.
getSourceId
();
LiteOrder
liteOrder
=
liteOrderCache
.
getOrderSortItems
(
sourceId
);
if
(
liteOrder
!=
null
){
dataMap
.
put
(
"pickingid"
,
liteOrder
.
getOrderNo
());
}
dataMap
.
put
(
"wo"
,
""
);
dataMap
.
put
(
"reelno"
,
task
.
getBarcode
());
dataMap
.
put
(
"ipn"
,
task
.
getPartNumber
());
dataMap
.
put
(
"qty"
,
task
.
getNum
());
dataMap
.
put
(
"datecode"
,
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
new
Date
()));
dataMap
.
put
(
"lot"
,
task
.
getPosName
());
dataMap
.
put
(
"vendor"
,
task
.
getPosName
());
dataMap
.
put
(
"batch"
,
task
.
getBatchId
());
paramMap
.
put
(
"data"
,
Arrays
.
asList
(
dataMap
));
String
param
=
JsonUtil
.
toJsonStr
(
paramMap
);
log
.
info
(
"IMES提供接收发料明细接口入参为:"
+
param
);
try
{
String
result
=
HttpHelper
.
postJson
(
outNotifyUrl
,
paramMap
);
log
.
info
(
"IMES提供接收发料明细接口出参为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
}
}
//2.禁用料接口MES提供外围系统调用
public
void
wmsCheckReelfob
(
String
checkReelfobUrl
,
Barcode
barcode
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"ipn"
,
barcode
.
getPartNumber
());
paramMap
.
put
(
"reelId"
,
barcode
.
getBarcode
());
paramMap
.
put
(
"wo"
,
""
);
paramMap
.
put
(
"datecode"
,
new
SimpleDateFormat
(
"yyyyMMdd"
).
format
(
new
Date
()));
paramMap
.
put
(
"lot"
,
barcode
.
getPosName
());
paramMap
.
put
(
"vendor"
,
barcode
.
getProviderNumber
());
String
param
=
JsonUtil
.
toJsonStr
(
paramMap
);
log
.
info
(
"禁用料接口wmsCheckReelfob入参为:"
+
param
);
try
{
String
result
=
HttpHelper
.
postJson
(
checkReelfobUrl
,
paramMap
);
log
.
info
(
"禁用料接口wmsCheckReelfob出参为:"
+
result
);
}
catch
(
ApiException
e
)
{
e
.
printStackTrace
();
}
}
@Override
public
boolean
isForThisApi
(
String
apiName
)
{
return
apiName
!=
null
&&
apiName
.
equalsIgnoreCase
(
"Lizhen"
);
}
}
src/main/java/com/neotel/smfcore/custom/lizhen/rest/LizhenController.java
0 → 100644
查看文件 @
ffea11d
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
rest
;
import
com.alibaba.fastjson.JSONObject
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.JsonUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@RestController
public
class
LizhenController
{
@Autowired
private
ILiteOrderManager
liteOrderManager
;
@Autowired
private
LiteOrderCache
liteOrderCache
;
//1.发料明细
@PostMapping
(
"/api/Mes/EPickingList"
)
public
ResultBean
EPickingList
(
@RequestBody
List
<
Map
<
String
,
Object
>>
params
)
{
if
(
params
==
null
||
params
.
isEmpty
())
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"参数不能为空"
);
}
for
(
Map
<
String
,
Object
>
param
:
params
)
{
String
pickingId
=
param
.
get
(
"picking_id"
)
==
null
?
""
:
param
.
get
(
"picking_id"
).
toString
();
//工单号
if
(
StringUtils
.
isBlank
(
pickingId
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"picking_id"
});
}
String
plantCode
=
param
.
get
(
"plant_code"
)
==
null
?
""
:
param
.
get
(
"plant_code"
).
toString
();
//需求单号
if
(
StringUtils
.
isBlank
(
plantCode
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"plant_code"
});
}
String
line
=
param
.
get
(
"line"
)
==
null
?
""
:
param
.
get
(
"line"
).
toString
();
//线别
if
(
StringUtils
.
isBlank
(
line
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"line"
});
}
//设置工单信息
LiteOrder
liteOrder
=
new
LiteOrder
();
liteOrder
.
setOrderNo
(
pickingId
);
liteOrder
.
setLine
(
line
);
//开始处理工单详情信息
List
<
LiteOrderItem
>
liteOrderItems
=
new
ArrayList
<>();
String
item
=
param
.
get
(
"ITEM"
)
==
null
?
""
:
param
.
get
(
"ITEM"
).
toString
();
if
(
StringUtils
.
isBlank
(
item
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"item"
});
}
List
<
Map
>
itemMaps
=
JsonUtil
.
toList
(
item
,
Map
.
class
);
for
(
Map
itemMap
:
itemMaps
)
{
String
face
=
itemMap
.
get
(
"face"
)
==
null
?
""
:
itemMap
.
get
(
"face"
).
toString
();
//面别
if
(
StringUtils
.
isBlank
(
face
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"face"
});
}
String
mo
=
itemMap
.
get
(
"mo"
)
==
null
?
""
:
itemMap
.
get
(
"mo"
).
toString
();
if
(
StringUtils
.
isBlank
(
mo
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"mo"
});
}
String
materialCode
=
itemMap
.
get
(
"material_code"
)
==
null
?
""
:
itemMap
.
get
(
"material_code"
).
toString
();
//物料编号
if
(
StringUtils
.
isBlank
(
materialCode
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"material_code"
});
}
String
brand
=
itemMap
.
get
(
"brand"
)
==
null
?
""
:
itemMap
.
get
(
"brand"
).
toString
();
//品牌
String
batchCode
=
itemMap
.
get
(
"batch_code"
)
==
null
?
""
:
itemMap
.
get
(
"batch_code"
).
toString
();
//批次号
Integer
reqQty
=
itemMap
.
get
(
"req_qty"
)
==
null
?
null
:
Integer
.
valueOf
(
itemMap
.
get
(
"req_qty"
).
toString
());
//数量
Integer
reqReel
=
itemMap
.
get
(
"req_reel"
)
==
null
?
null
:
Integer
.
valueOf
(
itemMap
.
get
(
"req_reel"
).
toString
());
//盘数
String
warehouse
=
itemMap
.
get
(
"warehouse"
)
==
null
?
""
:
itemMap
.
get
(
"material_code"
).
toString
();
//位置
if
(
StringUtils
.
isBlank
(
warehouse
))
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
"material_code"
});
}
//工单详情进行赋值操作
LiteOrderItem
liteOrderItem
=
new
LiteOrderItem
();
liteOrderItem
.
setPn
(
materialCode
);
liteOrderItem
.
setSide
(
face
);
liteOrderItem
.
setNeedNum
(
reqQty
);
liteOrderItem
.
setNeedReelCount
(
reqReel
);
liteOrderItem
.
setFeederInfo
(
warehouse
);
if
(
itemMap
.
get
(
"SLOT"
)
!=
null
){
String
slot
=
JsonUtil
.
toJsonStr
(
itemMap
.
get
(
"SLOT"
));
List
<
Map
>
slotMaps
=
JsonUtil
.
toList
(
slot
,
Map
.
class
);
for
(
Map
slotMap
:
slotMaps
)
{
String
machine
=
slotMap
.
get
(
"machine"
)
==
null
?
null
:
slotMap
.
get
(
"machine"
).
toString
();
//机器编号
String
zone
=
slotMap
.
get
(
"zone"
)
==
null
?
null
:
slotMap
.
get
(
"zone"
).
toString
();
//区域
}
}
liteOrderItems
.
add
(
liteOrderItem
);
}
liteOrder
.
setOrderItems
(
liteOrderItems
);
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
}
return
ResultBean
.
newOkResult
(
""
);
}
//5.缺料预警
@PostMapping
(
"/api/Mes/MpickingList"
)
public
ResultBean
MpickingList
(
@RequestBody
Map
<
String
,
Object
>
paramMap
)
{
if
(
paramMap
.
get
(
"data"
)
==
null
){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"参数不能为空"
);
}
String
data
=
JsonUtil
.
toJsonStr
(
paramMap
.
get
(
"data"
));
List
<
Map
>
params
=
JsonUtil
.
toList
(
data
,
Map
.
class
);
if
(
params
==
null
||
params
.
isEmpty
())
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"参数不能为空"
);
}
//全部必填的 进行校验
for
(
Map
<
String
,
Object
>
param
:
params
)
{
for
(
Map
.
Entry
<
String
,
Object
>
par
:
param
.
entrySet
())
{
String
parValue
=
par
.
getValue
()
==
null
?
""
:
par
.
getValue
().
toString
();
if
(
StringUtils
.
isBlank
(
parValue
)){
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueCanotNull"
,
"{}不能为空"
,
new
String
[]{
par
.
getKey
()});
}
}
}
for
(
Map
<
String
,
Object
>
param
:
params
)
{
String
id
=
param
.
get
(
"id"
)
==
null
?
""
:
param
.
get
(
"id"
).
toString
();
String
workorderno
=
param
.
get
(
"workorderno"
)
==
null
?
""
:
param
.
get
(
"workorderno"
).
toString
();
String
line
=
param
.
get
(
"line"
)
==
null
?
""
:
param
.
get
(
"line"
).
toString
();
String
machinename
=
param
.
get
(
"machinename"
)
==
null
?
""
:
param
.
get
(
"machinename"
).
toString
();
String
station
=
param
.
get
(
"station"
)
==
null
?
""
:
param
.
get
(
"station"
).
toString
();
String
side
=
param
.
get
(
"side"
)
==
null
?
""
:
param
.
get
(
"side"
).
toString
();
String
subslot
=
param
.
get
(
"subslot"
)
==
null
?
""
:
param
.
get
(
"subslot"
).
toString
();
String
partnumber
=
param
.
get
(
"partnumber"
)
==
null
?
""
:
param
.
get
(
"partnumber"
).
toString
();
String
leftqty
=
param
.
get
(
"leftqty"
)
==
null
?
""
:
param
.
get
(
"leftqty"
).
toString
();
String
leftpcbs
=
param
.
get
(
"leftpcbs"
)
==
null
?
""
:
param
.
get
(
"leftpcbs"
).
toString
();
String
lefttimes
=
param
.
get
(
"lefttimes"
)
==
null
?
""
:
param
.
get
(
"lefttimes"
).
toString
();
String
priority
=
param
.
get
(
"priority"
)
==
null
?
""
:
param
.
get
(
"priority"
).
toString
();
String
op
=
param
.
get
(
"op"
)
==
null
?
""
:
param
.
get
(
"op"
).
toString
();
String
productboards
=
param
.
get
(
"productboards"
)
==
null
?
""
:
param
.
get
(
"productboards"
).
toString
();
String
reel
=
param
.
get
(
"reel"
)
==
null
?
""
:
param
.
get
(
"reel"
).
toString
();
LiteOrder
liteOrder
=
new
LiteOrder
();
liteOrder
.
setSo
(
id
);
liteOrder
.
setOrderNo
(
workorderno
);
liteOrder
.
setLine
(
line
);
LiteOrderItem
liteOrderItem
=
new
LiteOrderItem
();
liteOrderItem
.
setSide
(
side
);
liteOrderItem
.
setFeederInfo
(
station
);
liteOrderItem
.
setPn
(
partnumber
);
liteOrderItem
.
setNeedNum
(
Integer
.
valueOf
(
leftqty
));
liteOrderItem
.
setRi
(
reel
);
liteOrder
.
setOrderItems
(
Arrays
.
asList
(
liteOrderItem
));
liteOrder
=
liteOrderManager
.
createWithItems
(
liteOrder
);
liteOrderCache
.
addOrderToMap
(
liteOrder
);
}
return
ResultBean
.
newOkResult
(
""
);
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论