Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 795a6b14
由
LN
编写于
2023-02-02 13:28:44 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加新设备类型SMDBOX_THIRD。datalog中增加出入库详细类型。
1 个父辈
19888dd5
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
122 行增加
和
9 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/ThirdBoxHandler.java
src/main/java/com/neotel/smfcore/core/storage/enums/DeviceType.java
src/main/java/com/neotel/smfcore/core/system/rest/bean/dto/TaskDto.java
src/main/java/com/neotel/smfcore/core/system/rest/bean/query/TaskQueryCondition.java
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/custom/micron20031/MicronSpUnloadController.java
src/main/java/com/neotel/smfcore/custom/micron20031/bean/MInOutType.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
795a6b1
...
...
@@ -40,6 +40,8 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import
com.neotel.smfcore.core.system.service.po.Humiture
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.micron20031.Micron20031Api
;
import
com.neotel.smfcore.custom.micron20031.bean.MInOutType
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.custom.siemens.bean.LotCheckInfo
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -261,6 +263,17 @@ public class BaseDeviceHandler implements IDeviceHandler {
//查找库位,生成入库任务
DataLog
putInTask
=
generatePutInTask
(
statusBean
,
barcodeSave
,
storage
);
//如果是20031的锡膏料仓
if
(
Micron20031Api
.
isEnable
()){
//如果工单任务,设置工单信息
if
(
ObjectUtil
.
isNotEmpty
(
storage
.
getInListName
())
){
putInTask
.
setSourceName
(
storage
.
getInListName
());
putInTask
.
setInOutType
(
MInOutType
.
DESPOSIT
);
}
else
{
putInTask
.
setInOutType
(
MInOutType
.
RETURNED
);
}
}
String
posId
=
putInTask
.
getPosName
();
int
plateW
=
barcodeSave
.
getPlateSize
();
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/ThirdBoxHandler.java
0 → 100644
查看文件 @
795a6b1
package
com
.
neotel
.
smfcore
.
core
.
device
.
handler
.
impl
;
import
com.neotel.smfcore.core.device.bean.StatusBean
;
import
com.neotel.smfcore.core.device.enums.OP
;
import
com.neotel.smfcore.core.storage.enums.DeviceType
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.system.util.DevicesStatusUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Map
;
@Service
@Slf4j
public
class
ThirdBoxHandler
extends
BaseDeviceHandler
{
@Override
public
StatusBean
handleClientRequest
(
StatusBean
statusBean
,
HttpServletRequest
request
)
{
statusBean
.
setClientIp
(
request
.
getRemoteHost
());
String
cid
=
statusBean
.
getCid
();
Storage
storage
=
dataCache
.
getStorage
(
cid
);
if
(
storage
==
null
)
{
log
.
error
(
"料仓cid: ["
+
cid
+
"]不存在"
);
return
null
;
}
handleMsg
(
statusBean
);
statusBean
=
saveAlarmAndHumidity
(
statusBean
);
statusBean
=
handleInOutFinished
(
statusBean
);
StatusBean
humidityResult
=
handleHumidity
(
statusBean
);
if
(
humidityResult
!=
null
)
{
return
humidityResult
;
}
if
(
statusBean
.
getOp
()
==
OP
.
PUT_IN
)
{
log
.
debug
(
"入库:"
+
statusBean
.
toString
());
statusBean
=
putInLine
(
storage
,
statusBean
);
}
else
{
//查看是否有要出库的操作
statusBean
=
taskService
.
checkOut
(
storage
,
statusBean
);
}
//获取操作
Map
<
String
,
String
>
opMap
=
DevicesStatusUtil
.
getAndRemoveOp
(
cid
);
statusBean
.
putOp
(
opMap
);
return
statusBean
;
}
@Override
public
DeviceType
getDeviceType
()
{
return
DeviceType
.
SMDBOX_THIRD
;
}
}
src/main/java/com/neotel/smfcore/core/storage/enums/DeviceType.java
查看文件 @
795a6b1
...
...
@@ -122,7 +122,12 @@ public enum DeviceType {
/**
* 19 机器人料仓
*/
ROBOT_BOX
(
"storage.type.robotBox"
);
ROBOT_BOX
(
"storage.type.robotBox"
),
/**
* 20 第三方料仓 麦康尼虚拟料仓
*/
SMDBOX_THIRD
(
"storage.type.SMDBOX_THIRD"
);
;
private
String
key
;
...
...
@@ -144,6 +149,6 @@ public enum DeviceType {
}
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
);
return
Lists
.
newArrayList
(
AUTO
,
LINE
,
BATCH
,
SOLDERPASTE
,
VERTICALBOX
,
SMD_XL
,
SMD_DUO
,
SMD_XLC
,
SMD_XLR
,
VIRTUAL
,
NL
,
NLP
,
NLM
,
SMDBOX_THIRD
);
}
}
src/main/java/com/neotel/smfcore/core/system/rest/bean/dto/TaskDto.java
查看文件 @
795a6b1
...
...
@@ -107,9 +107,8 @@ public class TaskDto implements Serializable {
* 创建人
*/
private
String
creator
;
/**
* 操作人
*/
@ApiModelProperty
(
"操作人"
)
private
String
operator
;
/**
...
...
src/main/java/com/neotel/smfcore/core/system/rest/bean/query/TaskQueryCondition.java
查看文件 @
795a6b1
...
...
@@ -44,4 +44,18 @@ public class TaskQueryCondition {
private
String
groupId
;
@ApiModelProperty
(
"CID数组"
)
private
String
[]
cids
;
@QueryCondition
@ApiModelProperty
(
"来源名称"
)
private
String
sourceName
;
@QueryCondition
@ApiModelProperty
(
"出入库类型"
)
private
String
inOutType
;
@QueryCondition
@ApiModelProperty
(
"操作人"
)
private
String
operator
;
}
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
795a6b1
...
...
@@ -209,6 +209,13 @@ public class DataLog extends BasePo implements Serializable {
*/
private
String
locInfo
=
""
;
/**
* 出入库子类型
* 入库:1=
* deposit=1, return=2
* removed=1, withdrawn=2, offline=3
*/
private
String
inOutType
=
""
;
/**
* MSD附加信息
*/
private
MSDAppendInfo
msdAppendInfo
;
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
795a6b1
...
...
@@ -103,7 +103,7 @@ public class TaskService {
* @return
* @throws ValidateException
*/
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
)
throws
ValidateException
{
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
,
String
outType
)
throws
ValidateException
{
if
(
pos
.
getBarcode
()
==
null
)
{
String
msg
=
"库位["
+
pos
.
getPosName
()
+
"]中已无物料,忽略"
;
log
.
info
(
msg
);
...
...
@@ -112,6 +112,7 @@ public class TaskService {
DataLog
task
=
new
DataLog
(
storage
,
pos
.
getBarcode
(),
pos
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setInOutType
(
outType
);
task
.
setPutInDate
(
pos
.
getBarcode
().
getPutInDate
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setSingleOut
(
isSingleOut
);
...
...
@@ -119,7 +120,9 @@ public class TaskService {
addTaskToExecute
(
task
);
return
""
;
}
public
synchronized
String
checkout
(
Storage
storage
,
StoragePos
pos
,
boolean
isSingleOut
,
String
opUserName
)
throws
ValidateException
{
return
checkout
(
storage
,
pos
,
isSingleOut
,
opUserName
,
""
);
}
/**
* 触发任务状态改变事件
*
...
...
src/main/java/com/neotel/smfcore/custom/micron20031/MicronSpUnloadController.java
查看文件 @
795a6b1
...
...
@@ -17,6 +17,7 @@ import com.neotel.smfcore.core.storage.service.manager.impl.StoragePosManagerImp
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.util.TaskService
;
import
com.neotel.smfcore.custom.micron20031.bean.MInOutType
;
import
com.neotel.smfcore.custom.micron20031.bean.dto.SpUnloadDto
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -139,7 +140,7 @@ public class MicronSpUnloadController {
throw
new
ValidateException
(
"smfcore.valueNotExist"
,
"{0}[{1}]不存在"
,
new
String
[]{
"storageId"
,
pos
.
getStorageId
()});
}
log
.
info
(
"出库料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】位置仓位【"
+
pos
.
getPosName
()
+
"】"
);
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
true
,
SecurityUtils
.
getCurrentUsername
());
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
true
,
SecurityUtils
.
getCurrentUsername
()
,
MInOutType
.
WITHDRAWN
);
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
throw
new
ValidateException
(
"smfcore.error"
,
outResult
);
}
...
...
@@ -179,7 +180,7 @@ public class MicronSpUnloadController {
if
(
barcode
!=
null
)
{
log
.
info
(
"removal 料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】仓位【"
+
pos
.
getPosName
()
+
"】 returnMaterial 成功,开始出库"
);
try
{
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
isSingleOut
,
SecurityUtils
.
getCurrentUsername
());
String
outResult
=
taskService
.
checkout
(
storage
,
pos
,
isSingleOut
,
SecurityUtils
.
getCurrentUsername
()
,
MInOutType
.
REMOVED
);
if
(!
Strings
.
isNullOrEmpty
(
outResult
))
{
// throw new ValidateException("smfcore.error", outResult);
log
.
error
(
"removal 料仓【"
+
storage
.
getName
()
+
"_"
+
storage
.
getCid
()
+
"】仓位【"
+
pos
.
getPosName
()
+
"】 returnMaterial 成功,出库失败: "
+
outResult
);
...
...
src/main/java/com/neotel/smfcore/custom/micron20031/bean/MInOutType.java
0 → 100644
查看文件 @
795a6b1
package
com
.
neotel
.
smfcore
.
custom
.
micron20031
.
bean
;
public
class
MInOutType
{
/**
* 出入库子类型
* 入库:1=
* return=0, deposit=1,
* removed=0, withdrawn=1, offline=2
*/
public
final
static
String
RETURNED
=
"returned"
;
public
final
static
String
DESPOSIT
=
"deposit"
;
public
final
static
String
REMOVED
=
"removed"
;
public
final
static
String
WITHDRAWN
=
"withdrawn"
;
public
final
static
String
OFFLINE
=
"offline"
;
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论