Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4a1baf9a
由
sunke
编写于
2022-11-11 13:45:32 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
接口推送到MES时放入线程处理
出库状态增加END处理
1 个父辈
f7d9a30b
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
48 行增加
和
33 行删除
src/main/java/com/neotel/smfcore/core/api/SmfApi.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/SpBoxHandler.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/custom/tiantong/TianTongApi.java
src/main/java/com/neotel/smfcore/core/api/SmfApi.java
查看文件 @
4a1baf9
...
...
@@ -16,15 +16,18 @@ import org.springframework.stereotype.Service;
import
javax.annotation.PostConstruct
;
import
java.util.List
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
@Service
@Slf4j
public
class
SmfApi
{
ExecutorService
threadPool
=
Executors
.
newCachedThreadPool
();
@Autowired
protected
DataCache
dataCache
;
/**
* 入库验证
*/
...
...
@@ -73,6 +76,8 @@ public class SmfApi {
orderNotifyUrl
=
dataCache
.
getConfigCache
(
"api.orderNotifyUrl"
,
orderNotifyUrl
);
fetchInListUrl
=
dataCache
.
getConfigCache
(
"api.fetchInListUrl"
,
fetchInListUrl
);
fetchOrderUrl
=
dataCache
.
getConfigCache
(
"api.fetchOrderUrl"
,
fetchOrderUrl
);
}
/**
...
...
@@ -87,28 +92,38 @@ public class SmfApi {
}
public
void
onTaskStatusChange
(
DataLog
task
)
{
for
(
ISmfApiListener
apiListener
:
apiListenerList
)
{
if
(
apiListener
.
isForThisApi
(
apiName
)){
if
(
task
.
isPutInTask
()){
if
(
isUrlExist
(
inNotifyUrl
)){
apiListener
.
inTaskStatusChange
(
inNotifyUrl
,
task
);
}
}
else
{
if
(
isUrlExist
(
outNotifyUrl
)){
apiListener
.
outTaskStatusChange
(
outNotifyUrl
,
task
);
threadPool
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
for
(
ISmfApiListener
apiListener
:
apiListenerList
)
{
if
(
apiListener
.
isForThisApi
(
apiName
)){
if
(
task
.
isPutInTask
()){
if
(
isUrlExist
(
inNotifyUrl
)){
apiListener
.
inTaskStatusChange
(
inNotifyUrl
,
task
);
}
}
else
{
if
(
isUrlExist
(
outNotifyUrl
)){
apiListener
.
outTaskStatusChange
(
outNotifyUrl
,
task
);
}
}
}
}
}
}
}
);
}
public
void
onOrderStatusChange
(
LiteOrder
liteOrder
){
if
(
isUrlExist
(
orderNotifyUrl
)){
for
(
ISmfApiListener
apiListener
:
apiListenerList
)
{
if
(
apiListener
.
isForThisApi
(
apiName
)){
apiListener
.
onOrderStatusChange
(
orderNotifyUrl
,
liteOrder
);
threadPool
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
for
(
ISmfApiListener
apiListener
:
apiListenerList
)
{
if
(
apiListener
.
isForThisApi
(
apiName
)){
apiListener
.
onOrderStatusChange
(
orderNotifyUrl
,
liteOrder
);
}
}
}
}
}
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
4a1baf9
...
...
@@ -253,12 +253,6 @@ public class BaseDeviceHandler implements IDeviceHandler {
}
//本地难条码是否可以入库
verifyBarcodePutIn
(
Lists
.<
Storage
>
newArrayList
(
storage
),
barcodeSave
);
//从API验证
Barcode
barcodeFromApi
=
smfApi
.
canPutInAfterResolve
(
barcodeSave
);
if
(
barcodeFromApi
!=
null
)
{
barcodeSave
=
barcodeFromApi
;
}
// //西门子接口验证
// boolean result=SiemensApi.getMaterialLot(1, storage.getId(),storage.getName(),barcodeSave.getBarcode());
...
...
@@ -408,7 +402,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
}
else
if
(
BOX_STATUS
.
OUT_FINISHED
==
status
)
{
//出仓完成
finishedOutPos
(
statusBean
.
getCid
(),
posName
,
executeTime
);
}
else
if
(
BOX_STATUS
.
OUT_END
==
status
)
{
//出库完成(放到仓门口
//暂不处理
endTask
(
statusBean
.
getCid
(),
posName
);
}
// else if (BOX_STATUS.REWARM_TAKING_END == status) {
// //回温取料完成, 将库位清空
...
...
@@ -532,6 +526,14 @@ public class BaseDeviceHandler implements IDeviceHandler {
protected
void
finishedOutPos
(
String
cid
,
String
posName
)
throws
ValidateException
{
finishedOutPos
(
cid
,
posName
,-
1
);
}
protected
void
endTask
(
String
cid
,
String
posName
){
DataLog
task
=
taskService
.
findFinishedTask
(
cid
,
posName
);
if
(
task
!=
null
){
task
.
setStatus
(
OP_STATUS
.
END
.
name
());
taskService
.
updateFinishedTask
(
task
);
}
}
/**
* 出仓位完成处理
* @param cid
...
...
@@ -817,13 +819,11 @@ public class BaseDeviceHandler implements IDeviceHandler {
return
dataLogs
;
}
//先查找正在执行中的发过去
for
(
String
sourceId
:
outMap
.
keySet
())
{
for
(
String
sourceId
:
outMap
.
keySet
())
{
List
<
DataLog
>
dataLogList
=
outMap
.
get
(
sourceId
);
boolean
isFind
=
false
;
for
(
DataLog
dataLog
:
dataLogList
)
{
for
(
DataLog
dataLog
:
dataLogList
)
{
if
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
EXECUTING
))
{
dataLogs
.
add
(
dataLog
);
isFind
=
true
;
...
...
@@ -839,10 +839,8 @@ public class BaseDeviceHandler implements IDeviceHandler {
log
.
error
(
"ACCSHELF: sourceId="
+
sourceId
+
"的工单号未找到"
);
break
;
}
for
(
LiteOrderItem
item
:
order
.
getOrderItems
()
)
{
for
(
DataLog
dataLog
:
dataLogList
)
{
for
(
LiteOrderItem
item
:
order
.
getOrderItems
())
{
for
(
DataLog
dataLog
:
dataLogList
)
{
if
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
WAIT
))
{
if
((
ObjectUtil
.
isNotEmpty
(
item
.
getPn
())
&&
item
.
getPn
().
equals
(
dataLog
.
getPartNumber
()))
||
(
ObjectUtil
.
isNotEmpty
(
item
.
getRi
())
&&
item
.
getRi
().
equals
(
dataLog
.
getBarcode
()))
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
4a1baf9
...
...
@@ -520,6 +520,7 @@ public class NLPShelfHandler extends BaseDeviceHandler {
// if(lightPosCidList.contains(cid)){
// hasReelPosColor = ORDER_COLOR.LIGHTBLUE.name();
// }
hasReelPosColor
=
"off"
;
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"hasReelPosList"
,
posList
);
dataMap
.
put
(
"hasReelPosColor"
,
hasReelPosColor
);
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/SpBoxHandler.java
查看文件 @
4a1baf9
...
...
@@ -272,6 +272,7 @@ public class SpBoxHandler extends BaseDeviceHandler {
return
DeviceType
.
SOLDERPASTE
;
}
@Override
protected
StatusBean
handleInOutFinished
(
StatusBean
statusBean
)
{
Map
<
String
,
BoxStatusBean
>
statusOfBoxes
=
statusBean
.
getBoxStatus
();
if
(
statusOfBoxes
!=
null
)
{
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
4a1baf9
...
...
@@ -295,7 +295,7 @@ public class DataLog extends BasePo implements Serializable {
* 超过5分钟的已完成,已取消的任务都不再
*/
public
boolean
needRemoveFromCache
(){
if
(
isFinished
()
||
isCancel
()){
if
(
isFinished
()
||
isCancel
()
||
isEnd
()
){
if
(
System
.
currentTimeMillis
()
-
super
.
getUpdateDate
().
getTime
()
>
5
*
60
*
1000
){
return
true
;
}
...
...
src/main/java/com/neotel/smfcore/custom/tiantong/TianTongApi.java
查看文件 @
4a1baf9
...
...
@@ -74,9 +74,9 @@ public class TianTongApi extends BaseSmfApiListener {
*/
@Override
public
void
outTaskStatusChange
(
String
outNotifyUrl
,
DataLog
task
)
{
if
(
task
.
is
Status
(
OP_STATUS
.
OUT_BOX
))
{
if
(
task
.
is
Finished
(
))
{
outBoxNotify
(
task
);
}
else
if
(
task
.
is
Finishe
d
())
{
}
else
if
(
task
.
is
En
d
())
{
outFinishedNotify
(
outNotifyUrl
,
task
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论