Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d9e1f2de
由
LN
编写于
2025-12-18 18:08:49 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
锡膏出库任务重复问题修改
1 个父辈
66a0239c
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
64 行增加
和
25 行删除
src/main/java/com/neotel/smfcore/core/solder/util/SolderBoxCache.java
src/main/java/com/neotel/smfcore/core/solder/util/SolderBoxCache.java
查看文件 @
d9e1f2d
...
@@ -203,41 +203,73 @@ public class SolderBoxCache {
...
@@ -203,41 +203,73 @@ public class SolderBoxCache {
}
}
}
}
private
boolean
CanCreateTask
(
StoragePos
storagePos
)
{
try
{
Barcode
barcode
=
storagePos
.
getBarcode
();
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
();
for
(
DataLog
queueTask
:
queueTasks
)
{
if
(
queueTask
.
getBarcode
().
equals
(
barcode
.
getBarcode
()))
{
//已经有任务,返回
return
false
;
}
}
//如果有刚刚完成的出库任务,也不生成
Collection
<
DataLog
>
finishedTasks
=
taskService
.
getFinishedTasks
();
for
(
DataLog
queueTask
:
finishedTasks
)
{
if
(
queueTask
.
getBarcode
().
equals
(
barcode
.
getBarcode
())
&&
queueTask
.
isCheckOutTask
()
&&
queueTask
.
isFinished
())
{
//有刚刚完成的出库任务,暂不生成
return
false
;
}
}
}
catch
(
Exception
exception
)
{
log
.
error
(
"CanCreateTask 出错:"
+
exception
.
toString
());
}
return
true
;
}
/**
/**
* 创建出库任务
* 创建出库任务
* @param storagePos
* @param storagePos
*/
*/
private
boolean
createOutTask
(
StoragePos
storagePos
)
throws
ValidateException
{
private
boolean
createOutTask
(
StoragePos
storagePos
)
throws
ValidateException
{
Barcode
barcode
=
storagePos
.
getBarcode
();
try
{
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
();
if
(!
CanCreateTask
(
storagePos
))
{
for
(
DataLog
queueTask
:
queueTasks
)
{
if
(
queueTask
.
getBarcode
().
equals
(
barcode
.
getBarcode
()))
{
//已经有任务,返回
return
false
;
return
false
;
}
}
}
//如果有刚刚完成的出库任务,也不生成
//等待1000后再次判断,防止正在处理出库任务过程中
Collection
<
DataLog
>
finishedTasks
=
taskService
.
getFinishedTasks
();
Thread
.
sleep
(
500
);
for
(
DataLog
queueTask
:
finishedTasks
)
{
if
(!
CanCreateTask
(
storagePos
))
{
if
(
queueTask
.
getBarcode
().
equals
(
barcode
.
getBarcode
())
&&
queueTask
.
isCheckOutTask
()
&&
queueTask
.
isFinished
())
{
log
.
error
(
"createOutTask 库位号"
+
storagePos
.
getPosName
()+
" 再次验证时发现已有任务,暂不创建出库任务"
);
//有刚刚完成的出库任务,暂不生成
return
false
;
return
false
;
}
}
}
//重新查找库位
log
.
info
(
barcode
.
getBarcode
()
+
"创建出库任务"
);
storagePos
=
storagePosManager
.
getByPosName
(
storagePos
.
getPosName
());
Storage
storage
=
dataCache
.
getStorageById
(
storagePos
.
getStorageId
());
if
(
storagePos
.
getBarcode
()==
null
){
DataLog
outTask
=
new
DataLog
(
storage
,
barcode
,
storagePos
);
log
.
error
(
"createOutTask 库位号"
+
storagePos
.
getPosName
()+
" 再次验证时发现库位已空,暂不创建出库任务"
);
outTask
.
setType
(
OP
.
CHECKOUT
);
return
false
;
outTask
.
setMixTime
(
barcode
.
getMixTime
());
}
//如果已过期,标记为过期物料出库
if
(
barcode
.
getExpireDate
()
!=
null
&&
barcode
.
getExpireDate
().
before
(
new
Date
()))
{
Barcode
barcode
=
storagePos
.
getBarcode
();
// TimeUnit.SECONDS.sleep(1);
log
.
info
(
barcode
.
getBarcode
()
+
"创建出库任务"
);
Storage
storage
=
dataCache
.
getStorageById
(
storagePos
.
getStorageId
());
DataLog
outTask
=
new
DataLog
(
storage
,
barcode
,
storagePos
);
outTask
.
setType
(
OP
.
CHECKOUT
);
outTask
.
setMixTime
(
barcode
.
getMixTime
());
//如果已过期,标记为过期物料出库
if
(
barcode
.
getExpireDate
()
!=
null
&&
barcode
.
getExpireDate
().
before
(
new
Date
()))
{
// String outMsg = "过期物料出库";
// String outMsg = "过期物料出库";
String
outMsg
=
MessageUtils
.
getText
(
"smfcore.spbox.expireOut"
,
MessageUtils
.
getDefaultLocal
(),
"过期物料出库"
);
String
outMsg
=
MessageUtils
.
getText
(
"smfcore.spbox.expireOut"
,
MessageUtils
.
getDefaultLocal
(),
"过期物料出库"
);
outTask
.
updateAppendData
(
"ngMsg"
,
outMsg
);
outTask
.
updateAppendData
(
"ngMsg"
,
outMsg
);
}
}
//outTask = dataLogDao.save(outTask);
//outTask = dataLogDao.save(outTask);
taskService
.
addTaskToExecute
(
outTask
);
taskService
.
addTaskToExecute
(
outTask
);
// //更改状态
// //更改状态
// barcode.setSolderStatus(SOLDER_STATUS.OUTING.name());
// barcode.setSolderStatus(SOLDER_STATUS.OUTING.name());
// barcode = barcodeManager.save(barcode);
// barcode = barcodeManager.save(barcode);
...
@@ -245,7 +277,14 @@ public class SolderBoxCache {
...
@@ -245,7 +277,14 @@ public class SolderBoxCache {
// storagePosManager.save(storagePos);
// storagePosManager.save(storagePos);
//
//
// log.info(barcode.getBarcode() + "创建出库任务完成,更改状态="+barcode.getSolderStatus());
// log.info(barcode.getBarcode() + "创建出库任务完成,更改状态="+barcode.getSolderStatus());
saveSolderLog
(
storagePos
);
saveSolderLog
(
storagePos
);
}
catch
(
ValidateException
ex
)
{
log
.
error
(
"createOutTask error "
+
ex
.
toString
());
throw
ex
;
}
catch
(
Exception
ex1
)
{
log
.
error
(
"createOutTask error "
+
ex1
.
toString
());
}
return
true
;
return
true
;
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论