Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 231a13b8
由
LN
编写于
2024-04-23 13:11:14 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加NLSM类型:推荐库位的钢网料架
1 个父辈
403eea59
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
150 行增加
和
6 行删除
src/main/java/com/neotel/smfcore/common/utils/Constants.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLMShelfHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLSMShelfHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLSShelfHandler.java
src/main/java/com/neotel/smfcore/core/storage/enums/DeviceType.java
src/main/java/com/neotel/smfcore/common/utils/Constants.java
查看文件 @
231a13b
...
@@ -173,4 +173,10 @@ public class Constants {
...
@@ -173,4 +173,10 @@ public class Constants {
*/
*/
public
static
final
String
CACHE_closeWorkOrder
=
"CACHE_closeWorkOrder"
;
public
static
final
String
CACHE_closeWorkOrder
=
"CACHE_closeWorkOrder"
;
/**
* 料架自动灭灯时间(毫秒),默认8000秒
*/
public
static
final
String
CACHE_shelfDelayCloseTime
=
"CACHE_shelfDelayCloseTime"
;
}
}
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLMShelfHandler.java
查看文件 @
231a13b
...
@@ -5,6 +5,7 @@ import com.google.common.base.Strings;
...
@@ -5,6 +5,7 @@ import com.google.common.base.Strings;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.bean.ResultBean
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.SecurityUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.bean.CodeBean
;
import
com.neotel.smfcore.core.barcode.bean.CodeBean
;
...
@@ -169,10 +170,19 @@ public class NLMShelfHandler extends BaseDeviceHandler {
...
@@ -169,10 +170,19 @@ public class NLMShelfHandler extends BaseDeviceHandler {
}
}
log
.
info
(
str
+
":"
+
allOpStr
);
log
.
info
(
str
+
":"
+
allOpStr
);
}
}
private
long
GetCloseTime
(
long
delayCloseTime
){
Long
closeTime
=
dataCache
.
getCache
(
Constants
.
CACHE_shelfDelayCloseTime
);
if
(
closeTime
==
null
||
closeTime
<=
0
){
closeTime
=
delayCloseTime
;
dataCache
.
updateCache
(
Constants
.
CACHE_shelfDelayCloseTime
,
closeTime
);
}
return
closeTime
;
}
/**
/**
* 开灯, 等6秒后关闭
* 开灯, 等6秒后关闭
*/
*/
private
void
openAndCloseLights
(
final
Storage
storage
,
final
List
<
String
>
posNameList
,
final
long
delayCloseTime
,
String
color
)
{
private
void
openAndCloseLights
(
final
Storage
storage
,
final
List
<
String
>
posNameList
,
final
long
delayCloseTime
,
String
color
)
{
final
String
cid
=
storage
.
getCid
();
final
String
cid
=
storage
.
getCid
();
if
(
posNameList
==
null
)
{
if
(
posNameList
==
null
)
{
return
;
return
;
...
@@ -183,7 +193,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
...
@@ -183,7 +193,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
DevicesStatusUtil
.
appendOp
(
cid
,
"open"
,
lightOnStr
);
DevicesStatusUtil
.
appendOp
(
cid
,
"open"
,
lightOnStr
);
allLightOnStr
+=
lightOnStr
+
","
;
allLightOnStr
+=
lightOnStr
+
","
;
}
}
log
.
info
(
"["
+
cid
+
"]点亮库位:"
+
allLightOnStr
);
log
.
info
(
"["
+
cid
+
"]点亮库位:"
+
allLightOnStr
+
",["
+
delayCloseTime
+
"]毫秒后自动灭灯"
);
//5秒后灭灯
//5秒后灭灯
Thread
closeTask
=
new
Thread
(
new
Runnable
()
{
Thread
closeTask
=
new
Thread
(
new
Runnable
()
{
...
@@ -347,7 +357,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
...
@@ -347,7 +357,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
}
}
}
}
}
}
int
delayCloseTime
=
8000
;
long
delayCloseTime
=
GetCloseTime
(
8000
)
;
String
color
=
"red"
;
String
color
=
"red"
;
if
(
pos
!=
null
)
{
if
(
pos
!=
null
)
{
log
.
info
(
barcode
.
getPartNumber
()
+
" [ "
+
barcode
.
getBarcode
()
+
" ] "
+
"入库到:"
+
currentStorage
.
getName
()
+
"["
+
currentStorage
.
getCid
()
+
"] "
+
pos
.
getPosName
());
log
.
info
(
barcode
.
getPartNumber
()
+
" [ "
+
barcode
.
getBarcode
()
+
" ] "
+
"入库到:"
+
currentStorage
.
getName
()
+
"["
+
currentStorage
.
getCid
()
+
"] "
+
pos
.
getPosName
());
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLSMShelfHandler.java
0 → 100644
查看文件 @
231a13b
package
com
.
neotel
.
smfcore
.
core
.
device
.
handler
.
impl
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.bean.OrderSetting
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.*
;
@Api
(
tags
=
"SHELF: NLSM(推荐库位钢网料架)"
)
@Slf4j
@Service
public
class
NLSMShelfHandler
extends
BaseDeviceHandler
{
@Override
public
DeviceType
getDeviceType
()
{
return
DeviceType
.
NLSM
;
}
@Override
public
StatusBean
handleClientRequest
(
StatusBean
statusBean
,
HttpServletRequest
request
)
{
statusBean
.
setClientIp
(
request
.
getRemoteHost
());
handleMsg
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
OrderSetting
orderSetting
=
dataCache
.
getOrderSetting
();
boolean
openZhiYin
=
orderSetting
.
getShelfLightType
().
equals
(
1
);
Map
<
String
,
List
<
DataLog
>>
outMap
=
new
HashMap
<>();
if
(
statusBean
!=
null
)
{
String
cid
=
statusBean
.
getCid
();
List
<
DataLog
>
finishedTasks
=
taskService
.
getFinishedTasks
();
for
(
DataLog
finishedTask
:
finishedTasks
)
{
if
(
finishedTask
.
getCid
().
equals
(
cid
)
&&
finishedTask
.
isCheckOutTask
()
&&
finishedTask
.
isCancel
()){
//取消的任务,需要关灯
taskService
.
removeFinishedTask
(
finishedTask
);
statusBean
.
addData
(
"close"
,
finishedTask
.
getPosName
());
}
}
Map
<
String
,
String
>
opMap
=
DevicesStatusUtil
.
getAndRemoveOp
(
statusBean
.
getCid
());
statusBean
.
addOp
(
opMap
);
}
//亮灯
Collection
<
DataLog
>
queueTasks
=
taskService
.
getQueueTasks
(
statusBean
.
getCid
());
for
(
DataLog
queueTask
:
queueTasks
)
{
if
(
queueTask
.
isWait
())
{
queueTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
queueTask
);
String
rgb
=
queueTask
.
getLightColor
();
ORDER_COLOR
color
=
ORDER_COLOR
.
fromRgb
(
rgb
);
if
(
color
==
null
)
{
// if(queueTask.isPutInTask()){
// color = ORDER_COLOR.DARKGREEN;
// }else{
if
(
openZhiYin
&&
ObjectUtil
.
isNotEmpty
(
queueTask
.
getSourceId
()))
{
List
<
DataLog
>
dataLogList
=
outMap
.
get
(
queueTask
.
getSourceId
());
if
(
dataLogList
==
null
)
{
dataLogList
=
new
ArrayList
<>();
}
dataLogList
.
add
(
queueTask
);
outMap
.
put
(
queueTask
.
getSourceId
(),
dataLogList
);
}
else
{
color
=
ORDER_COLOR
.
BLUE
;
}
// }
}
// statusBean.addData("open",queueTask.getPosName()+"="+color.name());
addMergeData
(
statusBean
,
queueTask
,
"open"
,
color
.
name
());
log
.
info
(
"库位["
+
queueTask
.
getPosName
()
+
"]+亮灯:"
+
color
.
name
());
}
}
List
<
DataLog
>
dataLogs
=
getLightGuideTask
(
outMap
,
statusBean
.
getCid
());
for
(
DataLog
task
:
dataLogs
)
{
// statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
if
(
StringUtils
.
isBlank
(
task
.
getLightColor
())){
task
.
setLightColor
(
ORDER_COLOR
.
BLUE
.
getRgb
());
}
String
color
=
ORDER_COLOR
.
fromRgb
(
task
.
getLightColor
()).
name
();
addMergeData
(
statusBean
,
task
,
"open"
,
color
);
}
return
statusBean
;
}
private
StatusBean
addMergeData
(
StatusBean
statusBean
,
DataLog
task
,
String
opKey
,
String
color
){
StoragePos
pos
=
storagePosManager
.
getByPosName
(
task
.
getPosName
());
if
(
pos
!=
null
){
List
<
String
>
relatedPosNames
=
pos
.
getMergePosList
();
if
(
relatedPosNames
==
null
||
relatedPosNames
.
isEmpty
()){
relatedPosNames
=
new
ArrayList
<>();
relatedPosNames
.
add
(
pos
.
getPosName
());
// log.info("操作库位["+pos.getPosName()+"]" + opKey);
}
else
{
// log.info("操作合并库位["+pos.getPosName()+"]" + opKey);
}
for
(
String
posName
:
relatedPosNames
){
statusBean
.
addData
(
opKey
,
posName
+
"="
+
color
);
}
}
return
statusBean
;
}
}
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLSShelfHandler.java
查看文件 @
231a13b
...
@@ -4,7 +4,7 @@ import com.neotel.smfcore.core.storage.enums.DeviceType;
...
@@ -4,7 +4,7 @@ import com.neotel.smfcore.core.storage.enums.DeviceType;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
@Api
(
tags
=
"SHELF: NLS(钢网料架)"
)
@Api
(
tags
=
"SHELF: NLS(
扫码
钢网料架)"
)
@Slf4j
@Slf4j
public
class
NLSShelfHandler
extends
NLShelfHandler
{
public
class
NLSShelfHandler
extends
NLShelfHandler
{
...
...
src/main/java/com/neotel/smfcore/core/storage/enums/DeviceType.java
查看文件 @
231a13b
...
@@ -135,14 +135,20 @@ public enum DeviceType {
...
@@ -135,14 +135,20 @@ public enum DeviceType {
NLL
(
"storage.type.nll"
),
NLL
(
"storage.type.nll"
),
/**
/**
* 22 钢网料架 NLS
* 22
扫码
钢网料架 NLS
*/
*/
NLS
(
"storage.type.nls"
),
NLS
(
"storage.type.nls"
),
/**
/**
* 23 SMD_MIMO_G2
* 23 SMD_MIMO_G2
*/
*/
SMD_MIMO_G2
(
"storage.type.smdMimoG2"
)
SMD_MIMO_G2
(
"storage.type.smdMimoG2"
),
/**
* 24 推荐库位钢网料架 NLSM
*/
NLSM
(
"storage.type.nlsm"
),
;
;
private
String
key
;
private
String
key
;
...
@@ -164,6 +170,6 @@ public enum DeviceType {
...
@@ -164,6 +170,6 @@ public enum DeviceType {
}
}
public
static
List
<
DeviceType
>
availableTypeList
(){
public
static
List
<
DeviceType
>
availableTypeList
(){
return
Lists
.
newArrayList
(
AUTO
,
LINE
,
BATCH
,
SOLDERPASTE
,
VERTICALBOX
,
SMD_XL
,
SMD_DUO
,
SMD_XLC
,
SMD_XLR
,
VIRTUAL
,
NL
,
NLP
,
NLM
,
NLL
,
NLS
,
SMDBOX_THIRD
,
SMD_MIMO_G2
);
return
Lists
.
newArrayList
(
AUTO
,
LINE
,
BATCH
,
SOLDERPASTE
,
VERTICALBOX
,
SMD_XL
,
SMD_DUO
,
SMD_XLC
,
SMD_XLR
,
VIRTUAL
,
NL
,
NLP
,
NLM
,
NLL
,
NLS
,
NLSM
,
SMDBOX_THIRD
,
SMD_MIMO_G2
);
}
}
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论