Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
SmdBox
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 71173e4e
由
LN
编写于
2024-07-31 09:21:30 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
料箱从库位取出时清空库位。放料箱完成时结束任务
1 个父辈
23fe4dce
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
194 行增加
和
97 行删除
myproject/src/main/java/com/myproject/webapp/controller/custom803/XLController.java
myproject/src/main/webapp/WEB-INF/pages/storage/storageUpdate.jsp
myproject/src/main/java/com/myproject/webapp/controller/custom803/XLController.java
查看文件 @
71173e4
...
...
@@ -308,47 +308,89 @@ public class XLController extends BaseController {
* @return
*/
@RequestMapping
(
"/service/store/xl/inStorageFeedback"
)
public
ResultBean
inStorageFeedback
(
@RequestBody
Map
<
String
,
String
>
bodyParamMap
,
HttpServletRequest
request
){
public
ResultBean
inStorageFeedback
(
@RequestBody
Map
<
String
,
String
>
bodyParamMap
,
HttpServletRequest
request
)
{
log
.
info
(
"料箱放入库位, 准备通知极创:"
+
bodyParamMap
.
toString
());
String
inStorageFeedbackUrl
=
dataCache
.
getSettings
().
getInNotifyApi
()
+
"/wms/api/znlc/in/inStorageFeedback"
;
String
inStorageFeedbackUrl
=
dataCache
.
getSettings
().
getInNotifyApi
()
+
"/wms/api/znlc/in/inStorageFeedback"
;
try
{
String
posName
=
bodyParamMap
.
get
(
"posName"
);
List
<
DataLog
>
allTasks
=
taskService
.
getFinishedTasks
();
allTasks
.
addAll
(
taskService
.
getQueueTasks
());
for
(
DataLog
queueTask
:
allTasks
)
{
if
(
queueTask
.
isPutInTask
()
&&
queueTask
.
getPosName
().
equals
(
posName
)){
// putInFinished
DataLog
queueTask
=
null
;
for
(
DataLog
obj
:
allTasks
)
{
if
(
obj
.
isPutInTask
()
&&
obj
.
getPosName
().
equals
(
posName
))
{
queueTask
=
obj
;
break
;
}
}
if
(
queueTask
==
null
)
{
return
ResultBean
.
newErrorResult
(
404
,
"料箱放入库位, 通知极创,未找到入库任务"
);
}
putInFinished
(
queueTask
);
// taskService.putInFinished(queueTask);
// StoragePos storagePos = storagePosManager.get(queueTask.getPosId());
// Barcode box = barcodeManager.findByBarcode(queueTask.getBarcode());
// box.setPutInTime(System.currentTimeMillis());
// box.setPutInDate(new Date());
// storagePos.setBarcode(box);
// storagePos.setUsed(true);
// storagePosManager.save(storagePos);
//
// queueTask.setStatus(StorageConstants.OP_STATUS.FINISHED.name());
// queueTask = dataLogDao.save(queueTask);
// taskService.moveTaskToFinished(queueTask);
queueTask
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
StoragePos
storagePos
=
storagePosManager
.
get
(
queueTask
.
getPosId
());
Barcode
box
=
barcodeManager
.
findByBarcode
(
queueTask
.
getBarcode
());
box
.
setPutInTime
(
System
.
currentTimeMillis
());
box
.
setPutInDate
(
new
Date
());
storagePos
.
setBarcode
(
box
);
storagePosManager
.
save
(
storagePos
);
Map
<
String
,
Object
>
paramData
=
new
HashMap
<>();
paramData
.
put
(
"djh"
,
queueTask
.
getSourceName
());
String
inTime
=
DateUtil
.
toDateString
(
queueTask
.
getCreateDate
(),
"yyyy-MM-dd HH:mm:ss"
);
paramData
.
put
(
"time"
,
inTime
);
paramData
.
put
(
"boxCode"
,
queueTask
.
getBarcode
());
paramData
.
put
(
"deviceNo"
,
queueTask
.
getCid
());
paramData
.
put
(
"locationCode"
,
queueTask
.
getPosName
());
log
.
info
(
"料箱放入库位, 通知极创:"
+
bodyParamMap
.
toString
());
String
result
=
HttpHelper
.
postJson
(
inStorageFeedbackUrl
,
paramData
);
log
.
info
(
"料箱放入库位, 通知极创返回:"
+
result
);
return
ResultBean
.
newOkResult
(
""
);
}
catch
(
Exception
e
)
{
log
.
info
(
"料箱放入库位, 通知极创出错:"
+
e
.
getMessage
());
return
ResultBean
.
newErrorResult
(
500
,
"料箱放入库位, 通知极创出错:"
+
e
.
getMessage
());
}
}
queueTask
=
dataLogDao
.
save
(
queueTask
);
taskService
.
moveTaskToFinished
(
queueTask
);
private
void
putInFinished
(
DataLog
task
)
throws
ValidateException
{
StoragePos
storagePos
=
storagePosManager
.
get
(
task
.
getPosId
());
//二维码状态
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
task
.
getBarcode
());
if
(
barcode
!=
null
)
{
barcode
.
setUsedCount
(
barcode
.
getUsedCount
()
+
1
);
//barcode.setUsedDate(new Date());
barcode
.
setPutInTime
(
System
.
currentTimeMillis
());
barcode
.
setInOpor
(
task
.
getOperator
());
barcode
.
setCheckOutDate
(
null
,
""
);
barcode
.
setPosName
(
task
.
getPosName
());
barcodeManager
.
save
(
barcode
);
}
Map
<
String
,
Object
>
paramData
=
new
HashMap
<>();
paramData
.
put
(
"djh"
,
queueTask
.
getSourceName
());
String
inTime
=
DateUtil
.
toDateString
(
queueTask
.
getCreateDate
(),
"yyyy-MM-dd HH:mm:ss"
);
paramData
.
put
(
"time"
,
inTime
);
paramData
.
put
(
"boxCode"
,
queueTask
.
getBarcode
());
paramData
.
put
(
"deviceNo"
,
queueTask
.
getCid
());
paramData
.
put
(
"locationCode"
,
queueTask
.
getPosName
());
log
.
info
(
"料箱放入库位, 通知极创:"
+
bodyParamMap
.
toString
());
String
result
=
HttpHelper
.
postJson
(
inStorageFeedbackUrl
,
paramData
);
log
.
info
(
"料箱放入库位, 通知极创返回:"
+
result
);
return
ResultBean
.
newOkResult
(
""
);
}
}
return
ResultBean
.
newErrorResult
(
404
,
"料箱放入库位, 通知极创,未找到入库任务"
);
}
catch
(
Exception
e
)
{
log
.
info
(
"料箱放入库位, 通知极创出错:"
+
e
.
getMessage
());
return
ResultBean
.
newErrorResult
(
500
,
"料箱放入库位, 通知极创出错:"
+
e
.
getMessage
());
/**
* 仓位状态
*/
storagePos
.
setBarcode
(
barcode
);
storagePos
.
setUsed
(
true
);
storagePos
.
setCanCheckOutTime
(
System
.
currentTimeMillis
());
storagePosManager
.
save
(
storagePos
);
if
(
barcode
!=
null
)
{
dataCache
.
updateInventory
(
storagePos
,
barcode
);
//记录日志,完成 task
task
.
setBatchInfo
(
barcode
.
getBatch
());
task
.
setNum
(
barcode
.
getAmount
());
}
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
task
=
dataLogDao
.
save
(
task
);
taskService
.
moveTaskToFinished
(
task
);
}
/**
...
...
@@ -546,35 +588,46 @@ public class XLController extends BaseController {
String
door
=
bodyParamMap
.
get
(
"door"
);
List
<
DataLog
>
allTasks
=
taskService
.
getFinishedTasks
();
allTasks
.
addAll
(
taskService
.
getQueueTasks
());
for
(
DataLog
task
:
allTasks
)
{
if
(
task
.
isCheckOutTask
()
&&
task
.
getPosName
().
equals
(
posName
)){
DataLog
task
=
null
;
for
(
DataLog
obj
:
allTasks
)
{
if
(
obj
.
isCheckOutTask
()
&&
obj
.
getPosName
().
equals
(
posName
))
{
task
=
obj
;
break
;
}
}
if
(
task
==
null
){
return
ResultBean
.
newErrorResult
(-
100
,
"未找到出库任务"
);
}
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
task
=
dataLogDao
.
save
(
task
);
taskService
.
moveTaskToFinished
(
task
);
log
.
info
(
"堆垛机放货完成, posName:"
+
posName
+
" barcode:"
+
task
.
getBarcode
()+
",任务状态:"
+
task
.
getStatus
());
Map
<
String
,
Object
>
paramData
=
new
HashMap
<>();
paramData
.
put
(
"boxCode"
,
task
.
getBarcode
());
paramData
.
put
(
"deviceNo"
,
task
.
getCid
());
paramData
.
put
(
"door"
,
door
);
log
.
info
(
"堆垛机放货完成, 通知极创:"
+
paramData
.
toString
());
String
result
=
HttpHelper
.
postJson
(
ddjPickUpGoodsNoticeUrl
,
paramData
);
log
.
info
(
"堆垛机放货完成, 通知极创返回:"
+
result
);
if
(!
com
.
google
.
common
.
base
.
Strings
.
isNullOrEmpty
(
result
)){
ObjectMapper
mapper
=
new
ObjectMapper
();
HashMap
<
String
,
Object
>
jsonMap
=
mapper
.
readValue
(
result
,
HashMap
.
class
);
String
ErrorCode
=
jsonMap
.
get
(
"code"
).
toString
();
if
(
"200"
.
equals
(
ErrorCode
)){
//成功
return
ResultBean
.
newOkResult
(
""
);
}
else
{
return
ResultBean
.
newErrorResult
(-
1
,
jsonMap
.
get
(
"message"
).
toString
());
}
}
OutFromPos
(
task
);
task
.
setStatus
(
StorageConstants
.
OP_STATUS
.
FINISHED
.
name
());
task
=
dataLogDao
.
save
(
task
);
taskService
.
moveTaskToFinished
(
task
);
Map
<
String
,
Object
>
paramData
=
new
HashMap
<>();
paramData
.
put
(
"boxCode"
,
task
.
getBarcode
());
paramData
.
put
(
"deviceNo"
,
task
.
getCid
());
paramData
.
put
(
"door"
,
door
);
log
.
info
(
"堆垛机放货完成, 通知极创:"
+
paramData
.
toString
());
String
result
=
HttpHelper
.
postJson
(
ddjPickUpGoodsNoticeUrl
,
paramData
);
log
.
info
(
"堆垛机放货完成, 通知极创返回:"
+
result
);
if
(!
com
.
google
.
common
.
base
.
Strings
.
isNullOrEmpty
(
result
)){
ObjectMapper
mapper
=
new
ObjectMapper
();
HashMap
<
String
,
Object
>
jsonMap
=
mapper
.
readValue
(
result
,
HashMap
.
class
);
String
ErrorCode
=
jsonMap
.
get
(
"code"
).
toString
();
if
(
"200"
.
equals
(
ErrorCode
)){
//成功
return
ResultBean
.
newOkResult
(
""
);
}
else
{
return
ResultBean
.
newErrorResult
(-
1
,
jsonMap
.
get
(
"message"
).
toString
());
}
}
else
{
return
ResultBean
.
newErrorResult
(-
1
,
"通知极创未收到返回值"
);
}
return
ResultBean
.
newErrorResult
(-
100
,
"未找到出库任务"
);
}
catch
(
Exception
e
)
{
log
.
info
(
"堆垛机放货完成, 通知极创出错:"
+
e
.
getMessage
());
return
ResultBean
.
newErrorResult
(-
1
,
e
.
getMessage
());
...
...
@@ -617,60 +670,104 @@ public class XLController extends BaseController {
* @return
*/
@RequestMapping
(
"/service/store/xl/outStorageFeedback"
)
public
ResultBean
outStorageFeedback
(
@RequestBody
Map
<
String
,
String
>
bodyParamMap
,
HttpServletRequest
request
){
public
ResultBean
outStorageFeedback
(
@RequestBody
Map
<
String
,
String
>
bodyParamMap
,
HttpServletRequest
request
)
{
log
.
info
(
"料箱从库位取出, 准备通知极创:"
+
bodyParamMap
.
toString
());
String
inStorageFeedbackUrl
=
dataCache
.
getSettings
().
getInNotifyApi
()
+
"/wms/api/znlc/out/outStorageFeedback"
;
String
inStorageFeedbackUrl
=
dataCache
.
getSettings
().
getInNotifyApi
()
+
"/wms/api/znlc/out/outStorageFeedback"
;
try
{
String
posName
=
bodyParamMap
.
get
(
"posName"
);
List
<
DataLog
>
allTasks
=
taskService
.
getFinishedTasks
();
allTasks
.
addAll
(
taskService
.
getQueueTasks
());
for
(
DataLog
queueTask
:
allTasks
)
{
if
(
queueTask
.
isCheckOutTask
()
&&
queueTask
.
getPosName
().
equals
(
posName
)){
Map
<
String
,
Object
>
paramData
=
new
HashMap
<>();
paramData
.
put
(
"djh"
,
queueTask
.
getSourceName
());
String
inTime
=
DateUtil
.
toDateString
(
queueTask
.
getCreateDate
(),
"yyyy-MM-dd HH:mm:ss"
);
paramData
.
put
(
"time"
,
inTime
);
paramData
.
put
(
"deviceNo"
,
queueTask
.
getCid
());
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"boxCode"
,
queueTask
.
getBarcode
());
dataMap
.
put
(
"locationCode"
,
queueTask
.
getPosName
());
List
<
Map
<
String
,
Object
>>
materialList
=
new
ArrayList
<>();
StoragePos
storagePos
=
storagePosManager
.
get
(
queueTask
.
getPosId
());
storagePos
.
setBarcode
(
null
);
storagePosManager
.
save
(
storagePos
);
queueTask
.
setStatus
(
"OUT_BOX"
);
queueTask
=
dataLogDao
.
save
(
queueTask
);
taskService
.
moveTaskToFinished
(
queueTask
);
Barcode
box
=
barcodeManager
.
findByBarcode
(
queueTask
.
getBarcode
());
if
(
box
!=
null
){
List
<
Barcode
>
subCodes
=
box
.
getSubCodes
();
for
(
Barcode
subCode
:
subCodes
)
{
Map
<
String
,
Object
>
materialMap
=
new
HashMap
<>();
materialMap
.
put
(
"serialNo"
,
subCode
.
getBarcode
());
materialMap
.
put
(
"partNum"
,
subCode
.
getPartNumber
());
materialMap
.
put
(
"outQuantity"
,
subCode
.
getLabelAmount
());
materialMap
.
put
(
"quantity"
,
subCode
.
getAmount
());
materialList
.
add
(
materialMap
);
}
}
dataMap
.
put
(
"materialList"
,
materialList
);
paramData
.
put
(
"data"
,
dataMap
);
log
.
info
(
"料箱从库位取出, 通知极创:"
+
bodyParamMap
.
toString
());
String
result
=
HttpHelper
.
postJson
(
inStorageFeedbackUrl
,
paramData
);
log
.
info
(
"料箱从库位取出, 通知极创返回:"
+
result
);
return
ResultBean
.
newOkResult
(
""
);
DataLog
queueTask
=
null
;
for
(
DataLog
obj
:
allTasks
)
{
if
(
obj
.
isCheckOutTask
()
&&
obj
.
getPosName
().
equals
(
posName
))
{
queueTask
=
obj
;
break
;
}
}
return
ResultBean
.
newErrorResult
(
404
,
"料箱从库位取出, 通知极创,未找到出库任务"
);
if
(
queueTask
==
null
)
{
return
ResultBean
.
newErrorResult
(
404
,
"料箱从库位取出, 通知极创,未找到出库任务"
);
}
log
.
info
(
"料箱从库位取出, posName:"
+
posName
+
" barcode:"
+
queueTask
.
getBarcode
()
+
",任务状态:"
+
queueTask
.
getStatus
());
OutFromPos
(
queueTask
);
// for (DataLog queueTask : allTasks) {
// if(queueTask.isCheckOutTask() && queueTask.getPosName().equals(posName)){
Map
<
String
,
Object
>
paramData
=
new
HashMap
<>();
paramData
.
put
(
"djh"
,
queueTask
.
getSourceName
());
String
inTime
=
DateUtil
.
toDateString
(
queueTask
.
getCreateDate
(),
"yyyy-MM-dd HH:mm:ss"
);
paramData
.
put
(
"time"
,
inTime
);
paramData
.
put
(
"deviceNo"
,
queueTask
.
getCid
());
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
dataMap
.
put
(
"boxCode"
,
queueTask
.
getBarcode
());
dataMap
.
put
(
"locationCode"
,
queueTask
.
getPosName
());
List
<
Map
<
String
,
Object
>>
materialList
=
new
ArrayList
<>();
OutFromPos
(
queueTask
);
queueTask
.
setStatus
(
"OUT_BOX"
);
queueTask
=
dataLogDao
.
save
(
queueTask
);
taskService
.
moveTaskToFinished
(
queueTask
);
Barcode
box
=
barcodeManager
.
findByBarcode
(
queueTask
.
getBarcode
());
if
(
box
!=
null
)
{
List
<
Barcode
>
subCodes
=
box
.
getSubCodes
();
for
(
Barcode
subCode
:
subCodes
)
{
Map
<
String
,
Object
>
materialMap
=
new
HashMap
<>();
materialMap
.
put
(
"serialNo"
,
subCode
.
getBarcode
());
materialMap
.
put
(
"partNum"
,
subCode
.
getPartNumber
());
materialMap
.
put
(
"outQuantity"
,
subCode
.
getLabelAmount
());
materialMap
.
put
(
"quantity"
,
subCode
.
getAmount
());
materialList
.
add
(
materialMap
);
}
}
dataMap
.
put
(
"materialList"
,
materialList
);
paramData
.
put
(
"data"
,
dataMap
);
log
.
info
(
"料箱从库位取出, 通知极创:"
+
bodyParamMap
.
toString
());
String
result
=
HttpHelper
.
postJson
(
inStorageFeedbackUrl
,
paramData
);
log
.
info
(
"料箱从库位取出, 通知极创返回:"
+
result
);
return
ResultBean
.
newOkResult
(
""
);
// }
// }
}
catch
(
Exception
e
)
{
log
.
info
(
"料箱从库位取出, 通知极创出错:"
+
e
.
getMessage
());
return
ResultBean
.
newErrorResult
(
500
,
"料箱从库位取出, 通知极创出错:"
+
e
.
getMessage
());
return
ResultBean
.
newErrorResult
(
500
,
"料箱从库位取出, 通知极创出错:"
+
e
.
getMessage
());
}
}
private
void
OutFromPos
(
DataLog
queueTask
)
throws
ValidateException
{
StoragePos
storagePos
=
storagePosManager
.
get
(
queueTask
.
getPosId
());
Barcode
barcode
=
storagePos
.
getBarcode
();
if
(
barcode
==
null
)
{
log
.
warn
(
"任务:"
+
queueTask
.
getId
()
+
" 仓位:"
+
queueTask
.
getPosId
()
+
" 的 Barcode 为null, 之前可能处理过直接返回"
);
}
else
{
barcode
=
barcodeManager
.
get
(
barcode
.
getId
());
if
(
barcode
!=
null
)
{
//二维码状态
barcode
.
setUsed
(
true
);
barcode
.
setUsedDate
(
new
Date
());
//仓位状态
barcode
.
setCheckOutDate
(
new
Date
(),
queueTask
.
getOperator
());
barcode
.
setPosName
(
""
);
barcodeManager
.
save
(
barcode
);
queueTask
.
setBatchInfo
(
barcode
.
getBatch
());
}
}
storagePos
.
setBarcode
(
null
);
storagePos
.
setUsed
(
false
);
storagePosManager
.
save
(
storagePos
);
log
.
info
(
"出库完成,清空仓位: "
+
storagePos
.
getId
()
+
"["
+
storagePos
.
getPosName
()
+
"]"
);
//更新缓存中的库存信息
dataCache
.
updateInventory
(
storagePos
,
barcode
);
}
/**
* 3.1. 库存信息接口
* 描述:仓储系统发起传递参数,料仓系统返回结果
...
...
myproject/src/main/webapp/WEB-INF/pages/storage/storageUpdate.jsp
查看文件 @
71173e4
...
...
@@ -309,13 +309,13 @@
<td id="td${slot.id}">
<c:if test="${!slot.enabled}">
<fmt:message key="storage.enable.
yes
"/>[
<fmt:message key="storage.enable.
no
"/>[
<a onclick="enablePos('${slot.id}',true);">
<fmt:message key="storage.enable.enable"/>
</a>]
</c:if>
<c:if test="${slot.enabled}" >
<fmt:message key="storage.enable.
no
"/>[
<fmt:message key="storage.enable.
yes
"/>[
<a onclick="enablePos('${slot.id}',false);">
<fmt:message key="storage.enable.prohibit"/>
</a>]
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论