Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5a8408ac
由
zshaohui
编写于
2024-06-22 16:59:31 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
功能优化 修改提交
1 个父辈
91d5d0b8
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
71 行增加
和
24 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CDeviceController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/TicketController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/AgvDeviceController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/LineController.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
查看文件 @
5a8408a
...
...
@@ -901,7 +901,7 @@ public class LiteOrderCache {
liteOrder
.
setTaskFinishedTime
(-
1
);
liteOrder
.
setFinishedReelCount
(
0
);
liteOrder
.
setStatus
(
LITEORDER_STATUS
.
TAILS
);
liteOrderMap
.
put
(
liteOrder
.
getOrderNo
(),
liteOrder
);
//
liteOrderMap.put(liteOrder.getOrderNo(), liteOrder);
//5.开始处理工单详情
List
<
StoragePos
>
needOutPosList
=
new
ArrayList
<>();
...
...
@@ -1250,6 +1250,7 @@ public class LiteOrderCache {
while
(
taskNum
<
remainNum
)
{
log
.
info
(
"当前分配的数量为:"
+
taskNum
+
",剩余数量为:"
+
remainNum
);
Collection
<
String
>
excludePosIds
=
excludeOutPosIds
();
StoragePos
pos
=
storagePosManager
.
findPartNumberInStorages
(
storageIdList
,
partNumber
,
excludePosIds
,
checkoutType
,
orderItem
.
getBrand
());
if
(
pos
==
null
)
{
...
...
@@ -1257,7 +1258,7 @@ public class LiteOrderCache {
}
else
{
Barcode
barcode
=
pos
.
getBarcode
();
log
.
info
(
barcode
.
getBarcode
()
+
"需要生成出库任务,工单号为:"
+
orderNo
);
taskNum
=
taskNum
+
barcode
.
get
Amount
();
taskNum
=
taskNum
+
barcode
.
get
Qty
();
taskReelCount
=
taskReelCount
+
1
;
DataLog
task
=
newTask
(
pos
);
task
.
setSourceId
(
cacheOrder
.
getId
());
...
...
@@ -1327,11 +1328,13 @@ public class LiteOrderCache {
while
(
taskNum
<
remainNum
)
{
log
.
info
(
orderNo
+
"已分配数量为:"
+
taskNum
+
",剩余数量为:"
+
remainNum
);
Collection
<
String
>
excludePosIds
=
excludeOutPosIds
();
//1.先从执行的料箱中出库
StoragePos
pos
=
null
;
if
(
storagePosList
!=
null
&&
!
storage
Id
List
.
isEmpty
())
{
if
(
storagePosList
!=
null
&&
!
storage
Pos
List
.
isEmpty
())
{
for
(
StoragePos
storagePos
:
storagePosList
)
{
if
(
excludePosIds
.
contains
(
storagePos
.
getId
()))
{
continue
;
...
...
@@ -1350,8 +1353,8 @@ public class LiteOrderCache {
break
;
}
else
{
Barcode
barcode
=
pos
.
getBarcode
();
log
.
info
(
barcode
.
getBarcode
()
+
"需要生成出库任务,工单号为:"
+
orderNo
);
taskNum
=
taskNum
+
barcode
.
get
Amount
();
log
.
info
(
barcode
.
getBarcode
()
+
"需要生成出库任务,工单号为:"
+
orderNo
+
",数量为:"
+
barcode
.
getQty
()
);
taskNum
=
taskNum
+
barcode
.
get
Qty
();
taskReelCount
=
taskReelCount
+
1
;
DataLog
task
=
newTask
(
pos
);
task
.
setSourceId
(
cacheOrder
.
getId
());
...
...
src/main/java/com/neotel/smfcore/core/storage/service/manager/impl/StoragePosManagerImpl.java
查看文件 @
5a8408a
...
...
@@ -393,7 +393,7 @@ public class StoragePosManagerImpl implements IStoragePosManager {
}
Query
q
=
new
Query
(
c
);
//Sort sort = getSortByCheckOutType(checkOutType);
Sort
sort
=
Sort
.
by
(
Sort
.
Direction
.
A
SC
,
"barcode.amount"
,
"barcode.expireDate"
,
"barcode.createDate"
);
Sort
sort
=
Sort
.
by
(
Sort
.
Direction
.
DE
SC
,
"barcode.amount"
,
"barcode.expireDate"
,
"barcode.createDate"
);
q
.
with
(
sort
);
StoragePos
pos
=
storagePosDao
.
findOne
(
q
);
if
(
pos
==
null
)
{
...
...
@@ -863,7 +863,8 @@ public class StoragePosManagerImpl implements IStoragePosManager {
@Override
public
List
<
StoragePos
>
findStoragePosByPartNumber
(
List
<
String
>
partNumberList
)
{
Criteria
c
=
Criteria
.
where
(
"barcode"
).
exists
(
true
)
.
and
(
"enabled"
).
is
(
true
).
and
(
"barcode.subCodeList.partNumber"
).
in
(
partNumberList
);
//可用;
.
and
(
"enabled"
).
is
(
true
).
and
(
"barcode.subCodeList.partNumber"
).
in
(
partNumberList
)
.
and
(
"barcode.status"
).
is
(
BARCODE_STATUS
.
IN_STORE
);;
//可用;
return
storagePosDao
.
findByQuery
(
new
Query
(
c
));
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CDeviceController.java
查看文件 @
5a8408a
...
...
@@ -103,6 +103,24 @@ public class CDeviceController {
resultMap
.
put
(
"h"
,
bindGrInfo
.
getH
());
}
}
else
if
(
MaterialUtil
.
storTransfer
(
codeStr
)){
StorTransfer
storTransfer
=
MaterialUtil
.
getStorTransferInfo
(
codeStr
);
log
.
info
(
codeStr
+
":绑定储位移转信息为:"
+
JSON
.
toJSONString
(
storTransfer
));
resultMap
.
put
(
"w"
,
storTransfer
.
getW
());
resultMap
.
put
(
"h"
,
storTransfer
.
getH
());
}
else
if
(
MaterialUtil
.
ticketReturn
(
codeStr
)){
TicketReturn
ticketReturn
=
MaterialUtil
.
getTicketReturnInfo
(
codeStr
);
log
.
info
(
codeStr
+
":绑定单据退料信息为:"
+
JSON
.
toJSONString
(
ticketReturn
));
resultMap
.
put
(
"w"
,
ticketReturn
.
getW
());
resultMap
.
put
(
"h"
,
ticketReturn
.
getH
());
}
else
if
(
MaterialUtil
.
ticketTransfer
(
codeStr
)){
TicketTransfer
ticketTransfer
=
MaterialUtil
.
getTicketTransferInfo
(
codeStr
);
log
.
info
(
codeStr
+
":绑定单据转库信息为:"
+
JSON
.
toJSONString
(
ticketTransfer
));
resultMap
.
put
(
"w"
,
ticketTransfer
.
getW
());
resultMap
.
put
(
"h"
,
ticketTransfer
.
getH
());
}
return
ResultBean
.
newOkResult
(
resultMap
);
}
...
...
@@ -573,7 +591,15 @@ public class CDeviceController {
barcode
.
setOrderItemId
(
""
);
barcode
.
setBarSource
(
""
);
barcodeManager
.
saveBarcode
(
barcode
);
return
ResultBean
.
newOkResult
(
""
);
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"binCode"
,
boxStr
);
resultMap
.
put
(
"seq"
,
seq
+
""
);
resultMap
.
put
(
"barcode"
,
barcode
.
getBarcode
());
resultMap
.
put
(
"pickingId"
,
orderNo
);
return
ResultBean
.
newOkResult
(
resultMap
);
}
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/TicketController.java
查看文件 @
5a8408a
...
...
@@ -88,9 +88,15 @@ public class TicketController {
liteOrder
=
liteOrderManager
.
findByOrderNo
(
ticket
);
}
if
(
liteOrder
!=
null
)
{
if
(!
liteOrder
.
isTaskFinished
()
&&
!
liteOrder
.
isNew
())
{
if
(
liteOrder
.
isClosed
()){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"单据号"
+
ticket
+
"已经关闭"
);
}
if
(!
liteOrder
.
isTaskFinished
()
&&
!
liteOrder
.
isNew
()
&&
!
liteOrder
.
isClosed
())
{
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"单据号"
+
ticket
+
"有正在执行的任务"
);
}
}
else
{
liteOrder
=
new
LiteOrder
();
liteOrder
.
setOrderNo
(
ticket
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/AgvDeviceController.java
查看文件 @
5a8408a
...
...
@@ -113,6 +113,8 @@ public class AgvDeviceController {
if
(
OP_STATUS
.
FINISHED
.
name
().
equals
(
statusStr
))
{
finishedPutInTask
(
task
);
taskService
.
moveTaskToFinished
(
task
);
dataLogManager
.
save
(
task
);
//WipBoxHandleUtil.intoPos(task);
ReelLockPosUtil
.
removeReelLockPosInfo
(
task
.
getBarcode
());
...
...
@@ -161,14 +163,14 @@ public class AgvDeviceController {
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
queueTask
.
getBarcode
());
//通知WMS
PalletUpdateRequest
palletUpdateRequest
=
new
PalletUpdateRequest
();
/*
PalletUpdateRequest palletUpdateRequest = new PalletUpdateRequest();
palletUpdateRequest.setREQUEST_ID(System.currentTimeMillis()+"");
palletUpdateRequest.setPALLET_LIST(Lists.newArrayList(barcode.getPalletId()));
//上架是SWC, 下架是SWCT
palletUpdateRequest.setBIN_CODE("SWCT");
palletUpdateRequest.setBIZ_TYPE("M");
palletUpdateRequest.setPLANT_CODE(CommonUtil.plantCode);
LuxsanApi
.
palletUpdate
(
palletUpdateRequest
);
LuxsanApi.palletUpdate(palletUpdateRequest);
*/
//已完成,从库存中清除,并且从完成队列中清除
...
...
@@ -192,8 +194,8 @@ public class AgvDeviceController {
storagePos
.
setUsed
(
false
);
storagePosManager
.
save
(
storagePos
);
queueTask
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
taskService
.
moveTaskToFinished
(
queueTask
);
//
queueTask.setStatus(OP_STATUS.FINISHED.name());
//
taskService.moveTaskToFinished(queueTask);
}
...
...
@@ -227,8 +229,5 @@ public class AgvDeviceController {
storagePosManager
.
save
(
storagePos
);
queueTask
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
taskService
.
moveTaskToFinished
(
queueTask
);
dataLogManager
.
save
(
queueTask
);
}
}
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/LineController.java
查看文件 @
5a8408a
...
...
@@ -13,6 +13,8 @@ import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.order.service.manager.ILiteOrderItemManager
;
import
com.neotel.smfcore.core.order.service.po.LiteOrderItem
;
import
com.neotel.smfcore.core.storage.service.manager.IStoragePosManager
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
...
...
@@ -70,6 +72,9 @@ public class LineController {
@Autowired
private
TaskService
taskService
;
@Autowired
private
ILiteOrderItemManager
liteOrderItemManager
;
/**
* 线体第一个扫码器扫码调用
...
...
@@ -221,7 +226,7 @@ public class LineController {
@AnonymousAccess
public
ResultBean
odnReCartonQty
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
boxId
=
paramMap
.
get
(
"cartonId"
);
log
.
info
(
"判断是否为最后一箱,入参为:"
+
boxId
);
//解析出来条码信息
Barcode
barcode
=
codeResolve
.
resolveOneValideBarcode
(
boxId
);
if
(
barcode
==
null
)
{
...
...
@@ -236,6 +241,7 @@ public class LineController {
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
task
:
allTasks
)
{
if
(
task
.
isCheckOutTask
()
&&
barcode
.
getBarcode
().
equals
(
task
.
getBarcode
()))
{
log
.
info
(
boxId
+
"任务需要改成FINISHED"
);
soureId
=
task
.
getSourceId
();
sourceName
=
task
.
getSourceName
();
if
(!
task
.
isFinished
()){
...
...
@@ -271,13 +277,19 @@ public class LineController {
resultMap
.
put
(
"odn"
,
sourceName
);
resultMap
.
put
(
"qty"
,
num
);
resultMap
.
put
(
"palletId"
,
barcode
.
getPalletId
());
if
(
num
==
0
){
return
ResultBean
.
newOkResult
(
resultMap
);
}
else
{
ResultBean
resultBean
=
ResultBean
.
newErrorResult
(-
1
,
""
,
"剩余还有"
+
num
+
"箱"
);
resultBean
.
setData
(
resultMap
);
return
resultBean
;
resultMap
.
put
(
"ticketCode"
,
""
);
resultMap
.
put
(
"ticketItem"
,
""
);
resultMap
.
put
(
"plantCode"
,
""
);
if
(
StringUtils
.
isNotEmpty
(
dataLog
.
getSubSourceId
())){
LiteOrderItem
orderItem
=
liteOrderItemManager
.
get
(
dataLog
.
getSubSourceId
());
if
(
orderItem
!=
null
){
resultMap
.
put
(
"ticketCode"
,
orderItem
.
getTicketCode
());
resultMap
.
put
(
"ticketItem"
,
orderItem
.
getTicketItem
());
resultMap
.
put
(
"plantCode"
,
orderItem
.
getPlantCode
());
}
}
return
ResultBean
.
newOkResult
(
resultMap
);
}
return
ResultBean
.
newErrorResult
(-
1
,
""
,
"未找到对应的信息"
);
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/wipstor/controller/WipStorCheckOutController.java
查看文件 @
5a8408a
...
...
@@ -215,7 +215,7 @@ public class WipStorCheckOutController {
liteOrderCache
.
odnCheckOut
(
odn
,
storagePosList
);
return
ResultBean
.
newOkResult
(
Arrays
.
asList
(
"111"
,
"222"
)
);
return
ResultBean
.
newOkResult
(
""
);
}
@ApiOperation
(
"人员调用wms手动解绑"
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论