Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4b1661ef
由
zshaohui
编写于
2023-12-25 13:28:57 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.获取需要移动的库位是否有料
2.移动物料到另外一个库位 3.修改barcode数量 4.取消任务禁用库位 与客户通信
1 个父辈
6765600c
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
143 行增加
和
0 行删除
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
src/main/java/com/neotel/smfcore/core/device/rest/DeviceController.java
查看文件 @
4b1661e
package
com
.
neotel
.
smfcore
.
core
.
device
.
rest
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.google.common.base.Strings
;
import
com.google.common.collect.Lists
;
...
...
@@ -14,6 +15,7 @@ import com.neotel.smfcore.common.utils.SecurityUtils;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.api.SmfApi
;
import
com.neotel.smfcore.core.api.bean.CodeValidateParam
;
import
com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager
;
import
com.neotel.smfcore.core.barcode.service.manager.IComponentManager
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.service.po.Component
;
...
...
@@ -69,6 +71,9 @@ public class DeviceController {
@Autowired
private
IComponentManager
componentManager
;
@Autowired
private
IBarcodeManager
barcodeManager
;
/**
* 权限验证API列表
*/
...
...
@@ -660,4 +665,142 @@ public class DeviceController {
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"commpont"
,
code
});
}
@ApiOperation
(
"获取需要移动的库位是否有料"
)
@RequestMapping
(
"/service/store/needMovePosHasReel"
)
@ResponseBody
@AnonymousAccess
public
ResultBean
needMovePosHasReel
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
checkOutPosName
=
paramMap
.
get
(
"checkOutPosName"
);
String
needMovePosName
=
paramMap
.
get
(
"needMovePosName"
);
log
.
info
(
"出库的库位为:"
+
checkOutPosName
+
",需要移动的库位为:"
+
needMovePosName
);
StoragePos
checkOutPos
=
storagePosManager
.
getByPosName
(
checkOutPosName
);
if
(
checkOutPos
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"posName"
,
checkOutPosName
});
}
StoragePos
needMovePos
=
storagePosManager
.
getByPosName
(
needMovePosName
);
if
(
needMovePos
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"posName"
,
needMovePosName
});
}
//如果barcode不为空,则提前锁定目标库位
boolean
hasReel
=
true
;
Barcode
barcode
=
needMovePos
.
getBarcode
();
if
(
barcode
!=
null
)
{
Storage
storage
=
dataCache
.
getStorageById
(
checkOutPos
.
getStorageId
());
ReelLockPosInfo
reelLocInfo
=
new
ReelLockPosInfo
();
reelLocInfo
.
setBarcode
(
barcode
.
getBarcode
());
reelLocInfo
.
setCid
(
storage
.
getCid
());
reelLocInfo
.
setLockPosName
(
checkOutPos
.
getPosName
());
reelLocInfo
.
setLockPosId
(
checkOutPos
.
getId
());
ReelLockPosUtil
.
addReelLockPosInfo
(
reelLocInfo
,
Arrays
.
asList
(
storage
.
getCid
()));
log
.
info
(
"提前锁定库位:"
+
checkOutPos
.
getPosName
()
+
",barcode为:"
+
barcode
.
getBarcode
());
}
else
{
hasReel
=
false
;
}
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"hasReel"
,
hasReel
);
if
(
hasReel
){
resultMap
.
put
(
"barcode"
,
barcode
.
getBarcode
());
resultMap
.
put
(
"partNumber"
,
barcode
.
getPartNumber
());
}
return
ResultBean
.
newOkResult
(
resultMap
);
}
@ApiOperation
(
"移动物料到另外一个库位"
)
@RequestMapping
(
"/service/store/moveToOtherPos"
)
@ResponseBody
@AnonymousAccess
public
ResultBean
moveToOtherPos
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
needMovePosName
=
paramMap
.
get
(
"needMovePosName"
);
//需要移动的库位
String
targetPosName
=
paramMap
.
get
(
"targetPosName"
);
//目标库位
log
.
info
(
"需要移动的库位为:"
+
needMovePosName
+
",目标库位为:"
+
targetPosName
);
//判断有没有物料
StoragePos
needMovePos
=
storagePosManager
.
getByPosName
(
needMovePosName
);
Barcode
barcode
=
needMovePos
.
getBarcode
();
if
(
barcode
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
needMovePosName
,
"barcode"
});
}
//生成一条出库任务
taskService
.
addTaskToFinished
(
needMovePos
,
barcode
,
"admin-move"
);
//判断目标库位是否存在
StoragePos
targetPos
=
storagePosManager
.
getByPosName
(
targetPosName
);
if
(
targetPos
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"posName"
,
targetPosName
});
}
taskService
.
addTaskToFinished
(
targetPos
,
barcode
,
"admin-move"
);
ReelLockPosUtil
.
removeReelLockPosInfo
(
barcode
.
getBarcode
());
return
ResultBean
.
newOkResult
(
""
);
}
@ApiOperation
(
"取消任务,禁用库位"
)
@RequestMapping
(
value
=
"/service/store/cancelAndDisable"
)
@ResponseBody
@AnonymousAccess
public
ResultBean
cancelAndDisable
(
HttpServletRequest
request
)
{
String
posName
=
request
.
getParameter
(
"posName"
);
if
(
StringUtils
.
isNotBlank
(
posName
))
{
DataLog
task
=
null
;
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
posName
.
equals
(
dataLog
.
getPosName
())
&&
dataLog
.
isCheckOutTask
()
&&
!
dataLog
.
isFinished
())
{
task
=
dataLog
;
break
;
}
}
if
(
task
!=
null
)
{
boolean
result
=
taskService
.
cancelTask
(
task
.
getId
());
if
(
result
)
{
StoragePos
pos
=
storagePosManager
.
getByPosName
(
posName
);
if
(
pos
!=
null
)
{
pos
.
setEnabled
(
false
);
storagePosManager
.
save
(
pos
);
dataCache
.
updateDisablePos
(
pos
);
log
.
info
(
"任务["
+
task
.
getId
()
+
"] posName["
+
task
.
getPosName
()
+
"] Reel Id["
+
task
.
getBarcode
()
+
"]取消成功,禁用库位["
+
task
.
getPosName
()
+
"]"
);
DeviceMessageUtil
.
addEnabledPosMessage
(
pos
,
SecurityUtils
.
getCurrentUsername
());
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
if
(
storage
!=
null
)
{
dataCache
.
reloadStorage
(
storage
,
""
);
}
}
return
ResultBean
.
newOkResult
(
""
);
}
}
else
{
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.task.notExist"
,
"Task does not exist"
);
}
}
return
ResultBean
.
newErrorResult
(
1
,
"smfcore.cancelOutTask.fail"
,
"客户端取消入库任务[{0}]失败:{1}"
,
new
String
[]{
posName
,
""
});
}
@ApiOperation
(
"修改barcode数量"
)
@RequestMapping
(
"/service/store/updateAmount"
)
@ResponseBody
@AnonymousAccess
public
ResultBean
updateAmount
(
HttpServletRequest
request
)
{
String
barcodeStr
=
request
.
getParameter
(
"barcode"
);
String
amountStr
=
request
.
getParameter
(
"amount"
);
log
.
info
(
barcodeStr
+
"修改数量为:"
+
amountStr
);
//1.判断物料是否存在
Barcode
barcode
=
barcodeManager
.
findByBarcode
(
barcodeStr
);
if
(
barcode
==
null
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"barcode"
,
barcodeStr
});
}
int
amount
=
NumberUtil
.
parseInt
(
amountStr
);
log
.
info
(
barcodeStr
+
"当前数量为:"
+
barcode
.
getAmount
()
+
",新的数量为:"
+
amount
);
barcode
.
setAmount
(
amount
);
barcodeManager
.
save
(
barcode
);
return
ResultBean
.
newOkResult
(
barcode
);
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论