Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e4fa3efe
由
LN
编写于
2023-01-13 15:56:42 +0800
浏览文件
选项
浏览文件
标签
下载
差异文件
Merge remote-tracking branch 'origin/master'
2 个父辈
d0e86b7e
6284782a
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
65 行增加
和
13 行删除
src/main/java/com/neotel/smfcore/core/api/SmfApi.java
src/main/java/com/neotel/smfcore/core/api/listener/BaseSmfApiListener.java
src/main/java/com/neotel/smfcore/core/api/listener/ISmfApiListener.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/solder/util/SolderBoxCache.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/custom/advantech/AdvantechApi.java
src/main/java/com/neotel/smfcore/core/api/SmfApi.java
查看文件 @
e4fa3ef
...
...
@@ -36,6 +36,12 @@ public class SmfApi {
protected
String
inCheckUrl
=
""
;
/**
* 出库验证
*/
@Value
(
"${api.outCheckUrl:}"
)
protected
String
outCheckUrl
=
""
;
/**
* 扫码后,条码解析前进行入库验证
*/
@Value
(
"${api.codeResolveUrl:}"
)
...
...
@@ -71,6 +77,7 @@ public class SmfApi {
apiName
=
dataCache
.
getConfigCache
(
"api.name"
,
apiName
);
log
.
info
(
"apiName:"
+
apiName
);
inCheckUrl
=
dataCache
.
getConfigCache
(
"api.inCheckUrl"
,
inCheckUrl
);
outCheckUrl
=
dataCache
.
getConfigCache
(
"api.outCheckUrl"
,
outCheckUrl
);
codeResolveUrl
=
dataCache
.
getConfigCache
(
"api.codeResolveUrl"
,
codeResolveUrl
);
inNotifyUrl
=
dataCache
.
getConfigCache
(
"api.inNotifyUrl"
,
inNotifyUrl
);
outNotifyUrl
=
dataCache
.
getConfigCache
(
"api.outNotifyUrl"
,
outNotifyUrl
);
...
...
@@ -147,6 +154,31 @@ public class SmfApi {
}
/**
* 创建出库任务后到API验证是否可以出库
*/
public
DataLog
outCheck
(
DataLog
dataLog
)
throws
ValidateException
{
if
(
dataLog
==
null
){
return
null
;
}
if
(
isUrlExist
(
outCheckUrl
)){
for
(
ISmfApiListener
apiListener
:
apiListenerList
)
{
if
(
apiListener
.
isForThisApi
(
apiName
)){
try
{
DataLog
chekcResultDataLog
=
apiListener
.
canCheckOut
(
outCheckUrl
,
dataLog
);
if
(
chekcResultDataLog
!=
null
){
return
chekcResultDataLog
;
}
}
catch
(
Exception
e
){
throw
new
ValidateException
(
"smfcore.api.error"
,
"API Error:"
+
e
.
getMessage
());
}
}
}
}
return
dataLog
;
}
/**
* 条码解析之后到API验证是否可以入库
*/
public
Barcode
canPutInAfterResolve
(
CodeValidateParam
params
,
Barcode
barcode
)
throws
ValidateException
{
...
...
src/main/java/com/neotel/smfcore/core/api/listener/BaseSmfApiListener.java
查看文件 @
e4fa3ef
...
...
@@ -79,6 +79,11 @@ public abstract class BaseSmfApiListener implements ISmfApiListener {
return
null
;
}
@Override
public
DataLog
canCheckOut
(
String
outCheckUrl
,
DataLog
dataLog
)
throws
ValidateException
{
return
null
;
}
protected
String
getData
(
Map
<
String
,
Object
>
dataMap
,
String
dataKey
)
{
Object
data
=
dataMap
.
get
(
dataKey
);
if
(
data
==
null
)
{
...
...
src/main/java/com/neotel/smfcore/core/api/listener/ISmfApiListener.java
查看文件 @
e4fa3ef
...
...
@@ -30,6 +30,12 @@ public interface ISmfApiListener {
*/
Barcode
canPutInAfterResolve
(
String
inCheckUrl
,
CodeValidateParam
params
,
Barcode
barcode
)
throws
ValidateException
;
/**
* 是否可出库验证
*/
DataLog
canCheckOut
(
String
outCheckUrl
,
DataLog
dataLog
)
throws
ValidateException
;
/**
* 入库扫条码后在解析之前进行验证
* @return
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
e4fa3ef
...
...
@@ -589,7 +589,12 @@ public class LiteOrderCache {
// task.setLightColor(nextColor.getRgb());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
// task = dataLogDao.save(task);
taskService
.
addTaskToExecute
(
task
);
try
{
taskService
.
addTaskToExecute
(
task
);
}
catch
(
Exception
e
){
String
msg
=
"工单["
+
orderNo
+
"]["
+
orderItem
.
getId
()+
"]补料出库:仓位["
+
pos
.
getPosName
()
+
"]RI=["
+
pos
.
getBarcode
().
getBarcode
()
+
"] PN=["
+
orderItem
.
getPn
()
+
"] num:"
+
pos
.
getBarcode
().
getAmount
();
log
.
error
(
"补料生成任务出错["
+
msg
+
"]:"
+
e
.
getMessage
());
}
}
}
}
...
...
src/main/java/com/neotel/smfcore/core/solder/util/SolderBoxCache.java
查看文件 @
e4fa3ef
...
...
@@ -164,7 +164,7 @@ public class SolderBoxCache {
DataLog
outTask
=
newTask
(
storage
,
storagePos
,
barcode
);
outTask
.
setType
(
OP
.
CHECKOUT
);
outTask
.
setMixTime
(
barcode
.
getMixTime
());
outTask
=
dataLogDao
.
save
(
outTask
);
//
outTask = dataLogDao.save(outTask);
taskService
.
addTaskToExecute
(
outTask
);
//更改状态
...
...
@@ -191,7 +191,7 @@ public class SolderBoxCache {
DataLog
mixTask
=
newTask
(
storage
,
storagePos
,
barcode
);
mixTask
.
setType
(
OP
.
MIX
);
mixTask
.
setMixTime
(
barcode
.
getMixTime
());
mixTask
=
dataLogDao
.
save
(
mixTask
);
//
mixTask = dataLogDao.save(mixTask);
taskService
.
addTaskToExecute
(
mixTask
);
//更改状态
...
...
@@ -221,12 +221,12 @@ public class SolderBoxCache {
log
.
info
(
barcode
.
getBarcode
()
+
"创建回温移库任务["
+
storagePos
.
getPosName
()+
"]=>"
+
warmPos
.
getPosName
());
DataLog
takingTask
=
newTask
(
storage
,
storagePos
,
barcode
);
takingTask
.
setType
(
OP
.
REWARM_TAKING
);
takingTask
=
dataLogDao
.
save
(
takingTask
);
//
takingTask = dataLogDao.save(takingTask);
taskService
.
addTaskToExecute
(
takingTask
);
DataLog
puttingTask
=
newTask
(
storage
,
warmPos
,
barcode
);
puttingTask
.
setType
(
OP
.
REWARM_PUTTING
);
puttingTask
=
dataLogDao
.
save
(
puttingTask
);
//
puttingTask = dataLogDao.save(puttingTask);
taskService
.
addTaskToExecute
(
puttingTask
);
}
}
catch
(
ValidateException
e
)
{
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
e4fa3ef
...
...
@@ -169,6 +169,9 @@ public class TaskService {
}
}
}
if
(
taskToExecute
.
isCheckOutTask
()
&&
taskToExecute
.
isWait
()){
taskToExecute
=
smfApi
.
outCheck
(
taskToExecute
);
}
updateQueueTask
(
taskToExecute
);
}
...
...
@@ -543,7 +546,7 @@ public class TaskService {
// return "order.out.notFound";
// }
}
task
=
dataLogDao
.
save
(
task
);
//
task = dataLogDao.save(task);
addTaskToExecute
(
task
);
return
""
;
}
...
...
src/main/java/com/neotel/smfcore/custom/advantech/AdvantechApi.java
查看文件 @
e4fa3ef
...
...
@@ -188,7 +188,7 @@ public class AdvantechApi extends BaseSmfApiListener {
*
*/
@Override
public
void
outTaskStatusChange
(
String
outNotifyUrl
,
DataLog
task
)
{
public
DataLog
canCheckOut
(
String
outCheckUrl
,
DataLog
task
)
throws
ValidateException
{
if
(
task
.
isWait
()
&&
!
task
.
isSingleOut
()){
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"webServiceType"
,
"AKMU1"
);
...
...
@@ -222,26 +222,27 @@ public class AdvantechApi extends BaseSmfApiListener {
"</REELS></root>"
;
paramMap
.
put
(
"param"
,
paramStr
);
try
{
log
.
info
(
task
.
getBarcode
()
+
"出库
通知
,参数"
+
JsonUtil
.
toJsonStr
(
paramMap
));
String
result
=
HttpHelper
.
postJson
(
out
Notify
Url
,
paramMap
);
log
.
info
(
task
.
get
PosName
()
+
"出库通知
返回"
+
result
);
log
.
info
(
task
.
getBarcode
()
+
"出库
验证
,参数"
+
JsonUtil
.
toJsonStr
(
paramMap
));
String
result
=
HttpHelper
.
postJson
(
out
Check
Url
,
paramMap
);
log
.
info
(
task
.
get
Barcode
()
+
"出库验证
返回"
+
result
);
//Map<String, Object> resultMap = JsonUtil.toMap(result);
//如果返回失败,取消任务
boolean
success
=
isOutTaskSuccess
(
result
,
task
.
getBarcode
());
if
(!
success
)
{
t
askService
.
cancelTask
(
task
.
getId
()
);
t
hrow
new
ValidateException
(
"smfcore.mesApi.outCheck.ng"
,
"MES出库验证出错"
);
}
else
{
//如果返回成功,把singleOut改为true
if
(
ObjectUtils
.
isNotEmpty
(
task
.
getSourceName
()))
{
task
.
setSingleOut
(
true
);
}
taskService
.
updateQueueTask
(
task
)
;
return
task
;
}
log
.
info
(
task
.
getBarcode
()
+
"出库通知返回"
+
result
);
}
catch
(
Exception
e
)
{
log
.
error
(
"出库通知接口出错:"
,
e
);
throw
new
ValidateException
(
"smfcore.mesApi.outCheck.ng"
,
"MES出库验证出错:"
+
e
.
getMessage
());
}
}
return
task
;
}
/**
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论