Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5dea1db8
由
zshaohui
编写于
2024-08-26 13:45:19 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
手动出库 通知WMS
1 个父辈
8672a6ba
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
67 行增加
和
22 行删除
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
src/main/java/com/neotel/smfcore/core/storage/rest/MaterialController.java
查看文件 @
5dea1db
...
...
@@ -10,6 +10,8 @@ import com.neotel.smfcore.common.utils.*;
import
com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
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.language.util.MessageUtils
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
...
...
@@ -28,6 +30,7 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.lizhen.LizhenApi
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.po.Group
;
...
...
@@ -86,6 +89,9 @@ public class MaterialController {
@Autowired
private
LiteOrderCache
liteOrderCache
;
@Autowired
private
LizhenApi
lizhenApi
;
@ApiOperation
(
"导出库存列表"
)
@GetMapping
(
value
=
"/inventory/download"
)
@PreAuthorize
(
"@el.check('tacticsOuput')"
)
...
...
@@ -359,30 +365,63 @@ public class MaterialController {
public
ResultBean
manualOut
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
code
=
paramMap
.
get
(
"barcode"
);
log
.
info
(
"手动出库,barcode为:"
+
code
);
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
code
);
StoragePos
storagePos
=
storagePosManager
.
getByBarcode
(
code
);
StoragePos
storagePos
=
storagePosManager
.
getByBarcode
(
code
);
Storage
storage
=
null
;
if
(
storagePos
!=
null
)
{
if
(!
ObjectUtil
.
isEmpty
(
storagePos
.
getBarcode
().
getLockId
()))
{
throw
new
ValidateException
(
"smfcore.error.barcode.locked"
,
"库位[{0}]已被锁定"
);
}
try
{
if
(
barcode
!=
null
)
{
String
opUser
=
SecurityUtils
.
getCurrentUsername
();
log
.
info
(
opUser
+
"清理库位["
+
storagePos
.
getPosName
()
+
"],条码["
+
code
+
"]中的库存"
+
barcode
.
getBarcode
());
taskService
.
addTaskToFinished
(
storagePos
,
null
,
opUser
+
"-manual"
);
storage
=
dataCache
.
getStorageById
(
storagePos
.
getStorageId
());
}
else
{
log
.
info
(
"清理库位["
+
storagePos
.
getPosName
()
+
"],条码["
+
code
+
"],库位条码为空"
);
}
storage
=
new
Storage
();
storagePos
=
new
StoragePos
();
}
DataLog
task
=
new
DataLog
(
storage
,
barcode
,
storagePos
);
task
.
setItemNo
(
1
);
task
.
setPickingId
(
""
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
task
.
setStorageId
(
storage
.
getId
());
task
.
setPutInDate
(
barcode
.
getPutInDate
());
task
.
setSingleOut
(
true
);
task
.
setWarehouseCode
(
barcode
.
getWarehouseCode
());
task
.
setDescribe
(
barcode
.
getDescribe
());
task
.
setBatchInfo
(
barcode
.
getBatch
());
task
.
setDateCode
(
barcode
.
getDateCode
());
task
.
setProvider
(
barcode
.
getProvider
());
task
.
setProviderNumber
(
barcode
.
getProviderNumber
());
task
.
setKeeperCode
(
barcode
.
getKeeperCode
());
task
.
setOperator
(
SecurityUtils
.
getLoginUsername
()
+
"-手动出库"
);
String
result
=
lizhenApi
.
towerIssue
(
task
);
if
(
StringUtils
.
isNotEmpty
(
result
)){
return
ResultBean
.
newErrorResult
(-
1
,
""
,
task
.
getBarcode
()+
"调用接口,发料失败:"
+
result
);
}
taskService
.
updateFinishedTask
(
task
);
return
ResultBean
.
newOkResult
(
"smfcore.manualOut.ok"
,
"手动出库成功"
,
code
);
}
catch
(
Exception
e
)
{
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.error"
,
"出错{0}"
,
new
String
[]{
e
.
getMessage
()},
true
);
}
if
(
storagePos
!=
null
)
{
if
(
StringUtils
.
isNotEmpty
(
storagePos
.
getPosName
()))
{
log
.
info
(
barcode
.
getBarcode
()+
"存在库位中:"
+
storagePos
.
getPosName
()+
"开始清理库位信息"
);
barcode
.
setUsed
(
true
);
barcode
.
setUsedDate
(
new
Date
());
//仓位状态
barcode
.
setCheckOutDate
(
new
Date
(),
task
.
getOperator
());
barcode
.
setPosName
(
""
);
barcodeManager
.
save
(
barcode
);
storagePos
.
setBarcode
(
null
);
storagePos
.
setUsed
(
false
);
storagePosManager
.
save
(
storagePos
);
dataCache
.
updateInventory
(
storagePos
,
barcode
);
}
else
{
throw
new
ValidateException
(
"smfcore.manualOut.notFound"
,
"仓库中未找到料盘信息
"
);
log
.
info
(
barcode
.
getBarcode
()+
"不在库位中,忽略
"
);
}
}
return
ResultBean
.
newOkResult
(
""
);
}
@ApiOperation
(
"批量出库"
)
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/StoragePosController.java
查看文件 @
5dea1db
...
...
@@ -866,9 +866,15 @@ public class StoragePosController {
dto
.
setHeight
(
codeBean
.
getReelHeight
());
dto
.
setPlateSize
(
codeBean
.
getReelWidth
());
if
(
codeBean
.
getBarcode
()
!=
null
)
{
dto
.
setBarcode
(
codeBean
.
getBarcode
().
getBarcode
());
String
barcode
=
codeBean
.
getBarcode
().
getBarcode
();
dto
.
setBarcode
(
barcode
);
dto
.
setPartNumber
(
codeBean
.
getBarcode
().
getPartNumber
());
dto
.
setPosName
(
codeBean
.
getBarcode
().
getPosName
());
String
posName
=
codeBean
.
getBarcode
().
getPosName
();
if
(
StringUtils
.
isNotEmpty
(
posName
)){
dto
.
setPosName
(
posName
);
}
else
{
dto
.
setPosName
(
barcode
);
}
dto
.
setAmount
(
codeBean
.
getBarcode
().
getAmount
());
if
(!
ObjectUtil
.
isEmpty
(
codeBean
.
getBarcode
().
getLockId
()))
{
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/LizhenApi.java
查看文件 @
5dea1db
...
...
@@ -286,12 +286,12 @@ public class LizhenApi extends DefaultSmfApiListener {
if
(
task
.
isFinished
()){
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
task
.
getBarcode
());
log
.
info
(
barcode
.
getBarcode
()+
"是否通知过:"
+
barcode
.
isAskPutIn
());
if
(!
barcode
.
isAskPutIn
()){
//
if (!barcode.isAskPutIn()){
Storage
storage
=
dataCache
.
getStorageById
(
task
.
getStorageId
());
BackToWarehouse
back
=
backToWarehouse
(
barcode
.
getWarehouseCode
(),
storage
.
getName
(),
barcode
.
getBarcode
());
barcode
.
setLabelId
(
back
.
getLABEL_ID
());
barcode
.
setAmount
(
back
.
getLABEL_QTY
());
barcode
.
setAskPutIn
(
true
);
//
barcode.setAskPutIn(true);
barcodeManager
.
save
(
barcode
);
StoragePos
pos
=
storagePosManager
.
getByBarcode
(
barcode
.
getBarcode
());
...
...
@@ -299,7 +299,7 @@ public class LizhenApi extends DefaultSmfApiListener {
pos
.
setBarcode
(
barcode
);
storagePosManager
.
save
(
pos
);
}
}
//
}
}
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
查看文件 @
5dea1db
...
...
@@ -880,7 +880,7 @@ public class InnerBoxRestController {
String
resultStr
=
lizhenApi
.
towerIssue
(
opTask
);
if
(
StringUtils
.
isEmpty
(
resultStr
)){
if
(
barcode
!=
null
){
barcode
.
setAskPutIn
(
false
);
//
barcode.setAskPutIn(false);
barcodeManager
.
save
(
barcode
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论