Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ebd78d69
由
zshaohui
编写于
2024-01-15 09:25:04 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.忽略流水线检查,自动清空出料口
2.虚拟仓手动出库,不允许出智能仓的物料
1 个父辈
b35a9306
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
85 行增加
和
4 行删除
src/main/java/com/neotel/smfcore/common/utils/ReelLockPosUtil.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/virtual/controller/VirtualRestController.java
src/main/java/com/neotel/smfcore/custom/lizhen/virtual/service/manager/IVirInventoryManager.java
src/main/java/com/neotel/smfcore/custom/lizhen/virtual/service/manager/impl/VirInventoryManagerImpl.java
src/main/java/com/neotel/smfcore/common/utils/ReelLockPosUtil.java
查看文件 @
ebd78d6
package
com
.
neotel
.
smfcore
.
common
.
utils
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.common.bean.ReelLockPosInfo
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -25,7 +26,7 @@ public class ReelLockPosUtil {
/**
* 料盘锁定库位信息,用于包装料分配到其他料仓
*/
private
static
Map
<
String
,
ReelLockPosInfo
>
reelLocKPosMap
;
private
static
Map
<
String
,
ReelLockPosInfo
>
reelLocKPosMap
=
Maps
.
newConcurrentMap
()
;
@PostConstruct
...
...
@@ -33,7 +34,7 @@ public class ReelLockPosUtil {
dataCache
=
autodataCache
;
reelLocKPosMap
=
dataCache
.
getCache
(
REEL_LOCK_POS_MAP_KEY
);
if
(
reelLocKPosMap
==
null
){
reelLocKPosMap
=
new
HashMap
<
String
,
ReelLockPosInfo
>(){}
;
reelLocKPosMap
=
Maps
.
newConcurrentMap
()
;
}
}
...
...
@@ -88,6 +89,7 @@ public class ReelLockPosUtil {
* 清理条码锁定库位信息
*/
public
static
void
removeReelLockPosInfo
(
String
barcode
)
{
log
.
info
(
"barcode-removeReelLock:"
+
barcode
);
reelLocKPosMap
.
remove
(
barcode
);
dataCache
.
updateCache
(
REEL_LOCK_POS_MAP_KEY
,
reelLocKPosMap
);
}
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
ebd78d6
...
...
@@ -35,6 +35,7 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.lizhen.LizhenApi
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.StorageExport
;
import
com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType
;
import
com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil
;
import
com.neotel.smfcore.custom.lizhen.report.bean.query.ReportQueryCondition
;
...
...
@@ -389,6 +390,20 @@ public class LiteOrderCache {
}
}
if
(
closed
)
{
Boolean
ignoreLineCheck
=
dataCache
.
getCache
(
Constants
.
CACHE_ignoreLineCheck
);
if
(
ignoreLineCheck
==
null
){
ignoreLineCheck
=
false
;
}
if
(
ignoreLineCheck
)
{
log
.
info
(
"ignoreLineCheck为:"
+
ignoreLineCheck
+
"清空出料口信息:"
+
task
.
getExport
()
+
",工单号为:"
+
task
.
getSourceName
());
if
(
StringUtils
.
isNotBlank
(
task
.
getExport
())){
StorageExport
export
=
StorageExportUtil
.
getExport
(
task
.
getExport
());
if
(
StringUtils
.
isNotBlank
(
export
.
getHSerial
()))
{
StorageExportUtil
.
clearExport
(
task
.
getExport
());
//StorageExportUtil.updateExport(task.getExport() + StorageExportUtil.OUT_STATION, export);
}
}
}
order
.
setClosed
(
closed
);
}
}
...
...
@@ -397,6 +412,20 @@ public class LiteOrderCache {
if
(
order
.
getFinishedReelCount
()
>=
order
.
getTaskReelCount
())
{
log
.
info
(
"工单["
+
orderNo
+
"]的出库任务已完成,共出库:"
+
order
.
getFinishedReelCount
()
+
" 盘"
);
order
.
setFinishDate
(
new
Date
());
Boolean
ignoreLineCheck
=
dataCache
.
getCache
(
Constants
.
CACHE_ignoreLineCheck
);
if
(
ignoreLineCheck
==
null
){
ignoreLineCheck
=
false
;
}
if
(
ignoreLineCheck
)
{
log
.
info
(
"ignoreLineCheck为:"
+
ignoreLineCheck
+
"清空出料口信息:"
+
task
.
getExport
()
+
",工单号为:"
+
task
.
getSourceName
());
if
(
StringUtils
.
isNotBlank
(
task
.
getExport
())){
StorageExport
export
=
StorageExportUtil
.
getExport
(
task
.
getExport
());
if
(
StringUtils
.
isNotBlank
(
export
.
getHSerial
()))
{
StorageExportUtil
.
clearExport
(
task
.
getExport
());
//StorageExportUtil.updateExport(task.getExport() + StorageExportUtil.OUT_STATION, export);
}
}
}
finishedOrderTasks
(
order
);
}
liteOrderManager
.
save
(
order
);
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
ebd78d6
...
...
@@ -35,6 +35,7 @@ import com.neotel.smfcore.custom.lizhen.LizhenApi;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.StorageExport
;
import
com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType
;
import
com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil
;
import
com.neotel.smfcore.custom.lizhen.virtual.service.manager.IVirInventoryManager
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -71,6 +72,9 @@ public class TaskService {
@Autowired
private
LizhenApi
lizhenApi
;
@Autowired
private
IVirInventoryManager
virInventoryManager
;
/**
* 任务队列,Key 为dataLog的ID,value 为本区域待执行的任务
*/
...
...
@@ -216,6 +220,9 @@ public class TaskService {
private
void
tiggerTaskChangeListener
(
DataLog
task
)
{
liteOrderCache
.
onTaskStatusChange
(
task
);
smfApi
.
onTaskStatusChange
(
task
);
//修改盘点状态
virInventoryManager
.
updateStatus
(
task
);
}
/**
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/innerBox/rest/InnerBoxRestController.java
查看文件 @
ebd78d6
...
...
@@ -2,6 +2,7 @@ package com.neotel.smfcore.custom.lizhen.innerBox.rest;
import
com.alibaba.fastjson.JSON
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.QueryHelp
;
import
com.neotel.smfcore.common.utils.ReelLockPosUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
...
...
@@ -451,8 +452,18 @@ public class InnerBoxRestController {
String
sourceId
=
dataLog
.
getSourceId
();
if
(
StringUtils
.
isNotBlank
(
sourceId
)
&&
StringUtils
.
isNotBlank
(
sourceName
))
{
//String export = StorageExportUtil.getExportByOrderNo(sourceName,false);
log
.
info
(
dataLog
.
getBarcode
()
+
"获取出料口信息为:"
+
dataLog
.
getExport
());
resultMap
.
put
(
"export"
,
dataLog
.
getExport
());
//判断是否禁用了
String
exportStr
=
dataLog
.
getExport
();
if
(
StringUtils
.
isNotBlank
(
exportStr
))
{
StorageExport
export
=
StorageExportUtil
.
getExport
(
exportStr
);
if
(
export
.
isDisable
())
{
log
.
info
(
exportStr
+
"出料口被禁用"
);
resultMap
.
put
(
"export"
,
""
);
}
else
{
log
.
info
(
dataLog
.
getBarcode
()
+
"获取出料口信息为:"
+
exportStr
);
resultMap
.
put
(
"export"
,
exportStr
);
}
}
}
else
{
String
export
=
StorageExportUtil
.
getExportByOrderNo
(
""
,
false
,
false
);
log
.
info
(
dataLog
.
getBarcode
()
+
"手动出库获取出料口信息为:"
+
export
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/virtual/controller/VirtualRestController.java
查看文件 @
ebd78d6
...
...
@@ -197,6 +197,7 @@ public class VirtualRestController {
@RequestMapping
(
"/vitual/checkout"
)
private
ResultBean
checkout
(
@RequestBody
Map
<
String
,
String
>
paramMap
)
{
String
code
=
paramMap
.
get
(
"code"
);
log
.
info
(
"手动出库的信息为:"
+
code
);
String
newCode
=
code
.
toUpperCase
();
//开始解析code
CodeBean
codeBean
=
codeResolve
.
resolveSingleCode
(
"=1x1="
+
newCode
);
...
...
@@ -220,6 +221,10 @@ public class VirtualRestController {
}
if
(
pos
!=
null
)
{
Storage
storage
=
dataCache
.
getStorageById
(
pos
.
getStorageId
());
if
(!
storage
.
isVirtual
())
{
log
.
info
(
barcodeStr
+
"存在智能仓:"
+
storage
.
getName
()+
"库位为:"
+
pos
.
getPosName
());
return
ResultBean
.
newErrorResult
(-
1
,
""
,
barcodeStr
+
"存在智能仓:"
+
storage
.
getName
()
+
",库位为:"
+
pos
.
getPosName
());
}
DataLog
dataLog
=
new
DataLog
(
storage
,
barcode
,
pos
);
dataLog
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
dataLog
.
setType
(
OP
.
CHECKOUT
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/virtual/service/manager/IVirInventoryManager.java
查看文件 @
ebd78d6
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
virtual
.
service
.
manager
;
import
com.neotel.smfcore.common.base.IBaseManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.custom.lizhen.virtual.bean.VirInventory
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Query
;
...
...
@@ -14,4 +15,6 @@ public interface IVirInventoryManager extends IBaseManager<VirInventory> {
VirInventory
getByBatchAndBarcode
(
String
batch
,
String
barcode
);
List
<
VirInventory
>
findByQuery
(
Query
query
,
Pageable
pageable
);
void
updateStatus
(
DataLog
task
);
}
src/main/java/com/neotel/smfcore/custom/lizhen/virtual/service/manager/impl/VirInventoryManagerImpl.java
查看文件 @
ebd78d6
...
...
@@ -2,10 +2,15 @@ package com.neotel.smfcore.custom.lizhen.virtual.service.manager.impl;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.custom.lizhen.virtual.bean.VirInventory
;
import
com.neotel.smfcore.custom.lizhen.virtual.service.dao.IVirInventoryDao
;
import
com.neotel.smfcore.custom.lizhen.virtual.service.manager.IVirInventoryManager
;
import
com.neotel.smfcore.custom.lizhen.virtual.util.VirInventoryUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
...
...
@@ -21,6 +26,9 @@ public class VirInventoryManagerImpl implements IVirInventoryManager {
@Autowired
private
IVirInventoryDao
virInventoryDao
;
@Autowired
private
DataCache
dataCache
;
@Override
public
VirInventory
get
(
String
id
)
{
return
null
;
...
...
@@ -65,4 +73,20 @@ public class VirInventoryManagerImpl implements IVirInventoryManager {
public
List
<
VirInventory
>
findByQuery
(
Query
query
,
Pageable
pageable
)
{
return
virInventoryDao
.
findByQuery
(
query
,
pageable
);
}
@Override
public
void
updateStatus
(
DataLog
task
)
{
/*if (task.isFinished()) {
String batch = dataCache.getCache(VirInventoryUtil.VIRINVENTORY_CACHE_BATCH);
if (StringUtils.isNotBlank(batch)) {
VirInventory virInventory = getByBatchAndBarcode(batch, task.getBarcode());
if (virInventory != null) {
if (!virInventory.isInventoryFinished()) {
virInventory.setInventoryFinished(true);
save(virInventory);
}
}
}
}*/
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论