Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit b05b1c45
由
zshaohui
编写于
2024-06-28 10:31:02 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.odn出库 库存不够 提示出来 不然出库
1 个父辈
e026bb1f
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
33 行增加
和
2 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/TakeOutController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/WipStorCheckOutController.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
b05b1c4
...
@@ -1343,7 +1343,7 @@ public class LiteOrderCache {
...
@@ -1343,7 +1343,7 @@ public class LiteOrderCache {
log
.
info
(
"生成工单"
+
orderNo
+
"任务结束,数量为:"
+
taskReelCount
);
log
.
info
(
"生成工单"
+
orderNo
+
"任务结束,数量为:"
+
taskReelCount
);
}
}
public
void
odnCheckOut
(
String
orderNo
,
List
<
StoragePos
>
storagePosList
)
{
public
synchronized
void
odnCheckOut
(
String
orderNo
,
List
<
StoragePos
>
storagePosList
)
{
LiteOrder
cacheOrder
=
liteOrderMap
.
get
(
orderNo
);
LiteOrder
cacheOrder
=
liteOrderMap
.
get
(
orderNo
);
if
(
cacheOrder
==
null
)
{
if
(
cacheOrder
==
null
)
{
cacheOrder
=
liteOrderManager
.
findByOrderNo
(
orderNo
);
cacheOrder
=
liteOrderManager
.
findByOrderNo
(
orderNo
);
...
@@ -1376,6 +1376,9 @@ public class LiteOrderCache {
...
@@ -1376,6 +1376,9 @@ public class LiteOrderCache {
int
taskReelCount
=
0
;
int
taskReelCount
=
0
;
//查找所有的任务
List
<
DataLog
>
dataLogList
=
new
ArrayList
<>();
for
(
LiteOrderItem
orderItem
:
cacheOrder
.
getOrderItems
())
{
for
(
LiteOrderItem
orderItem
:
cacheOrder
.
getOrderItems
())
{
String
partNumber
=
orderItem
.
getPn
();
String
partNumber
=
orderItem
.
getPn
();
...
@@ -1389,6 +1392,11 @@ public class LiteOrderCache {
...
@@ -1389,6 +1392,11 @@ public class LiteOrderCache {
log
.
info
(
orderNo
+
"已分配数量为:"
+
taskNum
+
",剩余数量为:"
+
remainNum
);
log
.
info
(
orderNo
+
"已分配数量为:"
+
taskNum
+
",剩余数量为:"
+
remainNum
);
Collection
<
String
>
excludePosIds
=
excludeOutPosIds
();
Collection
<
String
>
excludePosIds
=
excludeOutPosIds
();
if
(
dataLogList
!=
null
&&
!
dataLogList
.
isEmpty
()){
for
(
DataLog
dataLog
:
dataLogList
)
{
excludePosIds
.
add
(
dataLog
.
getPosId
());
}
}
//1.先从执行的料箱中出库
//1.先从执行的料箱中出库
StoragePos
pos
=
null
;
StoragePos
pos
=
null
;
...
@@ -1426,9 +1434,19 @@ public class LiteOrderCache {
...
@@ -1426,9 +1434,19 @@ public class LiteOrderCache {
task
.
setCartonId
(
barcode
.
getCartonId
());
task
.
setCartonId
(
barcode
.
getCartonId
());
}
}
task
.
setOdn
(
true
);
task
.
setOdn
(
true
);
taskService
.
addTaskToExecute
(
task
);
dataLogList
.
add
(
task
);
}
}
}
}
//如果数量不满足,则提示出来
if
(
taskNum
<
remainNum
){
finishedOrderTasks
(
cacheOrder
);
throw
new
ValidateException
(
""
,
orderItem
.
getPn
()+
"库存不足,odn:"
+
cacheOrder
.
getOrderNo
()+
"无法进行出库"
);
}
}
for
(
DataLog
dataLog
:
dataLogList
)
{
taskService
.
addTaskToExecute
(
dataLog
);
}
}
if
(
taskReelCount
<=
0
)
{
if
(
taskReelCount
<=
0
)
{
...
@@ -1437,6 +1455,8 @@ public class LiteOrderCache {
...
@@ -1437,6 +1455,8 @@ public class LiteOrderCache {
throw
new
ValidateException
(
"smfcore.order.out.noTask"
,
"工单无可执行的任务"
);
throw
new
ValidateException
(
"smfcore.order.out.noTask"
,
"工单无可执行的任务"
);
}
}
cacheOrder
.
setTaskReelCount
(
taskReelCount
);
cacheOrder
.
setTaskReelCount
(
taskReelCount
);
liteOrderManager
.
save
(
cacheOrder
);
liteOrderManager
.
save
(
cacheOrder
);
liteOrderMap
.
put
(
cacheOrder
.
getOrderNo
(),
cacheOrder
);
liteOrderMap
.
put
(
cacheOrder
.
getOrderNo
(),
cacheOrder
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/TakeOutController.java
查看文件 @
b05b1c4
...
@@ -52,6 +52,12 @@ public class TakeOutController {
...
@@ -52,6 +52,12 @@ public class TakeOutController {
@AnonymousAccess
@AnonymousAccess
public
ResultBean
ticketOut
(
String
ticket
,
boolean
isHold
)
{
public
ResultBean
ticketOut
(
String
ticket
,
boolean
isHold
)
{
log
.
info
(
"半成品仓单据出库:"
+
ticket
);
log
.
info
(
"半成品仓单据出库:"
+
ticket
);
if
(
StringUtils
.
isNotEmpty
(
liteOrderCache
.
hasExecutingOrder
()))
{
//throw new ValidateException("","有正在执行的工单,不允许恢复");
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"有正在执行的工单"
+
liteOrderCache
.
hasExecutingOrder
()+
",请确认"
);
}
if
(
StringUtils
.
isEmpty
(
ticket
))
{
if
(
StringUtils
.
isEmpty
(
ticket
))
{
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"单据号"
});
throw
new
ValidateException
(
"smfcore.valueCanotNull"
,
"{0}不能为空"
,
new
String
[]{
"单据号"
});
}
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/WipStorCheckOutController.java
查看文件 @
b05b1c4
...
@@ -113,6 +113,11 @@ public class WipStorCheckOutController {
...
@@ -113,6 +113,11 @@ public class WipStorCheckOutController {
log
.
info
(
"收到odn出库信息为:"
+
JSON
.
toJSONString
(
odnOut
));
log
.
info
(
"收到odn出库信息为:"
+
JSON
.
toJSONString
(
odnOut
));
if
(
StringUtils
.
isNotEmpty
(
liteOrderCache
.
hasExecutingOrder
()))
{
//throw new ValidateException("","有正在执行的工单,不允许恢复");
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"有正在执行的工单"
+
liteOrderCache
.
hasExecutingOrder
()+
",请确认"
);
}
String
odn
=
odnOut
.
getOdn
();
String
odn
=
odnOut
.
getOdn
();
if
(
StringUtils
.
isBlank
(
odn
))
{
if
(
StringUtils
.
isBlank
(
odn
))
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论