Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 03cae851
由
sunke
编写于
2022-07-28 17:12:02 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1 物料日志查询增加类型
2 料架提示消息只提示有权限的用户 3 工单查找页面增加模糊搜索 4 合单页面工单列表排序 5 UID出库页面增加唯一码搜索条件
1 个父辈
ce300d48
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
240 行增加
和
71 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
src/main/java/com/neotel/smfcore/core/hik/enums/IN_OUT_TYPE.java
src/main/java/com/neotel/smfcore/core/hik/rest/SingleInController.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderSheetController.java
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
src/main/java/com/neotel/smfcore/core/outList/util/OutListCache.java
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosQueryCriteria.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/core/system/websocket/SocketMsg.java
src/main/java/com/neotel/smfcore/core/system/websocket/WebSocketServer.java
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
src/main/java/com/neotel/smfcore/security/service/manager/IUserManager.java
src/main/java/com/neotel/smfcore/security/service/manager/impl/UserManagerImpl.java
src/main/resources/config/application.yml
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
03cae85
...
...
@@ -23,6 +23,7 @@ import com.neotel.smfcore.core.device.enums.OP;
import
com.neotel.smfcore.core.device.enums.OP_STATUS
;
import
com.neotel.smfcore.core.device.handler.IDeviceHandler
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.hik.enums.IN_OUT_TYPE
;
import
com.neotel.smfcore.core.message.util.DeviceMessageUtil
;
import
com.neotel.smfcore.core.order.LiteOrderCache
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
...
...
@@ -661,7 +662,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
//判断是否是工单出库
if
(
ObjectUtil
.
isNotEmpty
(
task
.
getSourceId
())&&
ObjectUtil
.
isNotEmpty
(
task
.
getSourceName
())&&
task
.
getOutType
()==
10
){
if
(
ObjectUtil
.
isNotEmpty
(
task
.
getSourceId
())&&
ObjectUtil
.
isNotEmpty
(
task
.
getSourceName
())&&
task
.
isOrderTask
()
){
LiteOrder
liteOrder
=
liteOrderCache
.
findOrderByNo
(
task
.
getSourceName
());
LiteOrderItem
item
=
liteOrder
.
getItemByPn
(
task
.
getPartNumber
());
...
...
@@ -672,7 +673,14 @@ public class BaseDeviceHandler implements IDeviceHandler {
boolean
result
=
HikApi
.
scheduleTaskApi
(
task
.
getOperator
(),
taskInfo
);
}
else
{
//出库完成,调用 ,7.6出库下架过账接口
boolean
result
=
HikApi
.
checkOutApi
(
task
.
getOperator
(),
InOutApiInfo
.
outInfo
(
task
.
getOutType
(),
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getBaseCode
(),
task
.
getLgort
(),
task
.
getSourceName
()));
int
outType
=
task
.
getOutType
();
if
(
task
.
isOutListTask
()){
//不是3线边仓间转储出库
if
(
outType
!=
IN_OUT_TYPE
.
OUT_TRANSFER
){
outType
=
IN_OUT_TYPE
.
OUT_LIST
;
}
}
boolean
result
=
HikApi
.
checkOutApi
(
task
.
getOperator
(),
InOutApiInfo
.
outInfo
(
outType
,
task
.
getBarcode
(),
task
.
getNum
(),
task
.
getBaseCode
(),
task
.
getLgort
(),
task
.
getSourceName
()));
}
//从队列里面移除操作
...
...
src/main/java/com/neotel/smfcore/core/device/handler/impl/NLPShelfHandler.java
查看文件 @
03cae85
...
...
@@ -27,6 +27,8 @@ import com.neotel.smfcore.hikvision.bean.InOutApiInfo;
import
com.neotel.smfcore.hikvision.bean.TransferOrderInInfo
;
import
com.neotel.smfcore.security.TokenProvider
;
import
com.neotel.smfcore.security.annotation.AnonymousAccess
;
import
com.neotel.smfcore.security.service.manager.IUserManager
;
import
com.neotel.smfcore.security.service.po.User
;
import
io.swagger.annotations.Api
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.util.Strings
;
...
...
@@ -48,7 +50,8 @@ public class NLPShelfHandler extends BaseDeviceHandler{
private
InListCache
inListCache
;
@Autowired
private
TokenProvider
tokenProvider
;
private
IUserManager
userManager
;
public
NLPShelfHandler
(
List
<
IOpAuthApi
>
apiList
)
{
super
(
apiList
);
}
...
...
@@ -95,7 +98,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
try
{
taskService
.
addTaskToExecute
(
dataLog
);
}
catch
(
Exception
e
)
{
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
e
.
getMessage
(),
MsgType
.
INFO
,
"smfclient.nlp.error"
,
new
String
[]{
e
.
getMessage
()})
);
return
ResultBean
.
newErrorResult
(-
1
,
"smfclient.nlp.error"
,
"入库失败:"
+
e
.
getMessage
(),
new
String
[]{
e
.
getMessage
()}
);
}
...
...
@@ -141,7 +144,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
color
=
ORDER_COLOR
.
DARKGREEN
;
}
else
{
if
(
ObjectUtil
.
isNotEmpty
(
queueTask
.
getSourceId
()))
{
if
(
queueTask
.
getOutType
()
==
10
)
{
if
(
queueTask
.
isOrderTask
()
)
{
if
(
queueTask
.
isInOperate
())
{
//首盘料 颜色:CYAN
//截料料 颜色:PURPLE
...
...
@@ -258,7 +261,10 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if
(
hasReelPosList
.
length
>
1
){
String
msg
=
"不可同时放入多盘物料:"
+
String
.
join
(
","
,
hasReelPosList
);
log
.
error
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.onlyOneTray"
,
new
String
[]{
String
.
join
(
","
,
hasReelPosList
)}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
SocketMsg
socketMsg
=
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.onlyOneTray"
,
new
String
[]{
String
.
join
(
","
,
hasReelPosList
)});
WebSocketServer
.
sendMsg
(
""
,
socketMsg
);
for
(
String
posStr
:
hasReelPosList
)
{
inNgList
.
add
(
posStr
);
}
...
...
@@ -268,12 +274,16 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if
(
pos
==
null
){
String
msg
=
"未找到库位:"
+
String
.
join
(
","
,
hasReelPosList
)
;
log
.
error
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
""
,
String
.
join
(
","
,
hasReelPosList
)}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
""
,
String
.
join
(
","
,
hasReelPosList
)}));
}
else
if
(!
pos
.
getStorageId
().
equals
(
storage
.
getId
())){
String
msg
=
"["
+
storage
.
getName
()+
"]未找到库位:"
+
String
.
join
(
","
,
hasReelPosList
)
;
log
.
error
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
storage
.
getName
(),
String
.
join
(
","
,
hasReelPosList
)}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
storage
.
getName
(),
String
.
join
(
","
,
hasReelPosList
)}));
}
//如果库位有料,直接结束
else
if
(
pos
.
getBarcode
()!=
null
)
{
...
...
@@ -304,7 +314,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{
inOkList
.
add
(
hasReelPosList
[
0
]);
String
msg
=
queueTask
.
getBarcode
()
+
"入库到"
+
pos
.
getPosName
()
+
"成功"
;
log
.
info
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
INFO
,
"smfclient.nlp.inputOk"
,
new
String
[]{
queueTask
.
getBarcode
(),
pos
.
getPosName
()}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
INFO
,
"smfclient.nlp.inputOk"
,
new
String
[]{
queueTask
.
getBarcode
(),
pos
.
getPosName
()}));
try
{
//判断是否是入库单入库
...
...
@@ -364,12 +376,16 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if
(
pos
==
null
){
String
msg
=
"未找到库位:"
+
String
.
join
(
","
,
hasReelPosList
)
;
log
.
error
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
""
,
String
.
join
(
","
,
hasReelPosList
)}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
""
,
String
.
join
(
","
,
hasReelPosList
)}));
}
else
if
(!
pos
.
getStorageId
().
equals
(
storage
.
getId
())){
String
msg
=
"["
+
storage
.
getName
()+
"]未找到库位:"
+
String
.
join
(
","
,
hasReelPosList
)
;
log
.
error
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
storage
.
getName
(),
String
.
join
(
","
,
hasReelPosList
)}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
ERROR
,
"smfclient.nlp.cannotFindPos"
,
new
String
[]{
storage
.
getName
(),
String
.
join
(
","
,
hasReelPosList
)}));
}
else
if
(
pos
.
getBarcode
()==
null
){
log
.
info
(
"料架["
+
cid
+
"]出库库位["
+
pos
.
getPosName
()
+
"]已为空 "
);
}
else
{
...
...
@@ -383,7 +399,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{
super
.
finishedOutPos
(
cid
,
posName
);
String
msg
=
queueTask
.
getBarcode
()+
"从"
+
posName
+
"出库成功,颜色["
+
queueTask
.
getLightColor
()+
"]"
;
log
.
info
(
msg
);
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
msg
,
MsgType
.
INFO
,
"smfclient.nlp.outputOk"
,
new
String
[]{
queueTask
.
getBarcode
(),
posName
}));
List
<
String
>
notifyUsers
=
userManager
.
findByDeviceGroupId
(
storage
.
getGroupId
());
WebSocketServer
.
sendMsg
(
""
,
new
SocketMsg
(
notifyUsers
,
msg
,
MsgType
.
INFO
,
"smfclient.nlp.outputOk"
,
new
String
[]{
queueTask
.
getBarcode
(),
posName
}));
break
;
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/neotel/smfcore/core/hik/enums/IN_OUT_TYPE.java
0 → 100644
查看文件 @
03cae85
package
com
.
neotel
.
smfcore
.
core
.
hik
.
enums
;
public
class
IN_OUT_TYPE
{
/**
* 入库类型:1=普通入库,2=并盘入库,3=截料入库,4=退料入库, 5=转储单入库
*/
/**
* 1=普通入库
*/
public
static
int
IN_NORMAL
=
1
;
/**
* 2=并盘入库
*/
public
static
int
IN_MERGE
=
2
;
/**
* 3=截料入库
*/
public
static
int
IN_CUT
=
3
;
/**
* 4=退料入库
*/
public
static
int
IN_BACK
=
4
;
/**
* 5=转储单入库
*/
public
static
int
IN_LIST
=
5
;
/**
* 出库类型:0普通出库,1并盘出库 ,2湿敏出库 3线边仓间转储出库 ,10=工单出库,11=补料出库
* 4,预留单出库(5转外协出库,6发运单出库,7成本中心领料)
*/
/**
* 0普通出库
*/
public
static
int
OUT_NORMAL
=
0
;
/**
* 1并盘出库
*/
public
static
int
OUT_MERGE
=
1
;
/**
* 2湿敏出库
*/
public
static
int
OUT_MSL
=
2
;
/**
* 3线边仓间转储出库
*/
public
static
int
OUT_BETWEEN
=
3
;
/**
* 4,预留单出库(5转外协出库,6发运单出库,7成本中心领料)
*/
public
static
int
OUT_LIST
=
4
;
/**
* 5 转外协出库
*/
public
static
int
OUT_TRANSFER
=
5
;
/**
* 6发运单出库
*/
public
static
int
OUT_SENDER
=
6
;
/**
* 7成本中心领料
*/
public
static
int
OUT_CENTRAL
=
7
;
/**
* 10=工单出库
*/
public
static
int
OUT_ORDER
=
10
;
/**
* 11=补料出库
*/
public
static
int
OUT_REPLE
=
11
;
public
static
String
getDetailTypeStr
(
int
detailType
)
{
String
detailTypeStr
=
""
;
//入库类型:1=普通入库,2=并盘入库,3=截料入库,4=退料入库, 5=转储单入库
if
(
detailType
==
1
){
detailTypeStr
=
"普通入库"
;
}
else
if
(
detailType
==
2
){
detailTypeStr
=
"并盘入库"
;
}
else
if
(
detailType
==
3
){
detailTypeStr
=
"截料入库"
;
}
else
if
(
detailType
==
4
){
detailTypeStr
=
"退料入库"
;
}
else
if
(
detailType
==
5
){
detailTypeStr
=
"转储单入库"
;
}
else
if
(
detailType
==
100
){
//出库类型:0普通出库,1并盘出库 ,2湿敏出库 3线边仓间转储出库 ,10=工单出库,11=补料出库
// * 4,预留单出库(5转外协出库,6发运单出库,7成本中心领料)
detailTypeStr
=
"普通出库"
;
}
else
if
(
detailType
==
101
){
detailTypeStr
=
"并盘出库"
;
}
else
if
(
detailType
==
102
){
detailTypeStr
=
"湿敏出库"
;
}
else
if
(
detailType
==
103
){
detailTypeStr
=
"线边仓间转储出库"
;
}
else
if
(
detailType
==
104
){
detailTypeStr
=
"预留单出库"
;
}
else
if
(
detailType
==
105
){
detailTypeStr
=
"转外协出库"
;
}
else
if
(
detailType
==
106
){
detailTypeStr
=
"发运单出库"
;
}
else
if
(
detailType
==
107
){
detailTypeStr
=
"成本中心领料"
;
}
else
if
(
detailType
==
110
){
detailTypeStr
=
"工单出库"
;
}
else
if
(
detailType
==
111
){
detailTypeStr
=
"补料出库"
;
}
return
detailTypeStr
;
}
}
src/main/java/com/neotel/smfcore/core/hik/rest/SingleInController.java
查看文件 @
03cae85
...
...
@@ -274,7 +274,6 @@ public class SingleInController {
Integer
qty
=
barcode
.
getAmount
();
String
msl
=
barcode
.
getMsl
();
try
{
//创建入库任务,暂不指定库位
DataLog
dataLog
=
new
DataLog
();
dataLog
.
setBarcode
(
reelId
);
...
...
@@ -309,7 +308,7 @@ public class SingleInController {
try
{
taskService
.
addTaskToExecute
(
dataLog
);
}
catch
(
Exception
e
)
{
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
e
.
getMessage
(),
MsgType
.
INFO
,
"smfclient.nlp.error"
,
new
String
[]{
e
.
getMessage
()})
);
return
ResultBean
.
newErrorResult
(-
1
,
"smfclient.nlp.error"
,
"入库失败:"
+
e
.
getMessage
(),
new
String
[]{
e
.
getMessage
()}
);
}
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
03cae85
...
...
@@ -10,6 +10,7 @@ import com.neotel.smfcore.core.barcode.service.po.Component;
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.hik.enums.IN_OUT_TYPE
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
...
...
@@ -133,7 +134,7 @@ public class LiteOrderCache implements ITaskListener {
//只有任务完成或取消时才处理,任务未完成直接返回
if
(
task
.
isFinished
()
||
task
.
isCancel
())
{
//判断是否是工单任务
if
(
OP
.
CHECKOUT
==
task
.
getType
()&&
task
.
getOutType
()==
10
){
if
(
task
.
isOrderTask
()
){
finishedOrderTask
(
task
);
}
}
...
...
@@ -564,7 +565,10 @@ public class LiteOrderCache implements ITaskListener {
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setOperator
(
userName
);
task
.
setOutType
(
10
);
//工单出库类型为10
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_ORDER
);
//工单出库类型为10
if
(
cacheOrder
.
isRepleOrder
()){
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_REPLE
);
//补料出库类型为11
}
if
(
jieliaoPosMap
.
containsKey
(
pos
.
getPosName
())){
//需要截料
int
count
=
jieliaoPosMap
.
get
(
pos
.
getPosName
());
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
03cae85
...
...
@@ -122,8 +122,7 @@ public class OrderController {
Set
<
String
>
groupIds
=
user
.
getGroups
();
List
<
String
>
excludeSources
=
Lists
.
newArrayList
();
List
<
Group
>
groups
=
groupManager
.
findAll
();
for
(
Group
group
:
groups
)
{
for
(
Group
group
:
groups
)
{
if
(
groupIds
.
contains
(
group
.
getId
()))
{
continue
;
}
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderSheetController.java
查看文件 @
03cae85
...
...
@@ -22,6 +22,9 @@ import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
import
com.neotel.smfcore.core.system.service.manager.IDataLogManager
;
import
com.neotel.smfcore.core.system.service.po.DataLog
;
import
com.neotel.smfcore.core.system.websocket.MsgType
;
import
com.neotel.smfcore.core.system.websocket.SocketMsg
;
import
com.neotel.smfcore.core.system.websocket.WebSocketServer
;
import
com.neotel.smfcore.security.service.manager.IGroupManager
;
import
com.neotel.smfcore.security.service.manager.IUserManager
;
import
com.neotel.smfcore.security.service.po.Group
;
...
...
@@ -32,6 +35,7 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.security.access.prepost.PreAuthorize
;
...
...
@@ -142,7 +146,7 @@ public class OrderSheetController {
query
.
addCriteria
(
Criteria
.
where
(
"sheetEnd"
).
ne
(
true
));
query
.
addCriteria
(
Criteria
.
where
(
"boxInfos"
).
ne
(
null
));
//必须绑定箱子
query
.
addCriteria
(
Criteria
.
where
(
"shortageOut"
).
ne
(
true
));
//非欠料出库
query
.
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"updateDate"
));
PageData
<
LiteOrder
>
orderList
=
liteOrderManager
.
findByPage
(
query
,
pageable
);
PageData
<
OrderDto
>
resultList
=
orderMapper
.
toDto
(
orderList
);
return
resultList
;
...
...
src/main/java/com/neotel/smfcore/core/order/rest/bean/query/OrderQueryCondition.java
查看文件 @
03cae85
...
...
@@ -12,7 +12,7 @@ import java.util.List;
@Data
public
class
OrderQueryCondition
{
@QueryCondition
(
blurry
=
"orderNo,jobNo"
)
@QueryCondition
(
blurry
=
"orderNo,jobNo
,workLine,wktype,baseCode,lgort
"
)
private
String
blurry
;
@QueryCondition
(
type
=
QueryCondition
.
Type
.
BETWEEN
)
...
...
src/main/java/com/neotel/smfcore/core/order/service/manager/impl/LiteOrderManagerImpl.java
查看文件 @
03cae85
...
...
@@ -103,7 +103,8 @@ public class LiteOrderManagerImpl implements ILiteOrderManager {
}
@Override
public
PageData
<
LiteOrder
>
findByPage
(
Query
query
,
Pageable
pageable
)
{
public
PageData
<
LiteOrder
>
findByPage
(
Query
query
,
Pageable
pageable
)
{
int
totalCount
=
liteOrderDao
.
countByQuery
(
query
);
List
<
LiteOrder
>
list
=
liteOrderDao
.
findByQuery
(
query
,
pageable
);
return
new
PageData
<
LiteOrder
>(
list
,
totalCount
);
...
...
src/main/java/com/neotel/smfcore/core/outList/util/OutListCache.java
查看文件 @
03cae85
...
...
@@ -7,6 +7,7 @@ import com.neotel.smfcore.core.barcode.service.po.Component;
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.hik.enums.IN_OUT_TYPE
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
import
com.neotel.smfcore.core.outList.service.manager.IOutListItemManager
;
...
...
@@ -55,7 +56,7 @@ public class OutListCache implements ITaskListener {
//只有任务完成或取消时才处理,任务未完成直接返回
if
(
task
.
isFinished
()
||
task
.
isCancel
())
{
//判断是否是转储单任务
if
(
OP
.
CHECKOUT
==
task
.
getType
()&&(
task
.
getOutType
()==
3
||
task
.
getOutType
()==
4
))
{
if
(
task
.
isOutListTask
(
))
{
finishedOrderTask
(
task
);
}
}
...
...
@@ -321,12 +322,18 @@ public class OutListCache implements ITaskListener {
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
//判断出库类型
if
(
outList
.
getDocType
().
equals
(
0
)){
task
.
setOutType
(
3
);
//转储出库类型为3
}
else
{
Integer
docType
=
outList
.
getDocType
();
if
(
docType
==
0
){
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_BETWEEN
);
//线边仓间转储出库为3
}
else
if
(
docType
==
1
){
//转外协出库,发运单出库,成本中心领料:对应4,预留单出库
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_TRANSFER
);
//转外协出库
}
else
if
(
docType
==
2
){
//转外协出库,,:对应4,预留单出库
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_SENDER
);
//发运单出库
}
else
if
(
docType
==
3
){
//转外协出库,发运单出库,成本中心领料:对应4,预留单出库
task
.
setOutType
(
4
);
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_CENTRAL
);
//成本中心领料
}
task
.
setLightColor
(
ORDER_COLOR
.
FIREBRICK
.
getRgb
());
//普通转储出库单 颜色:FIREBRICK
...
...
src/main/java/com/neotel/smfcore/core/storage/rest/query/StoragePosQueryCriteria.java
查看文件 @
03cae85
...
...
@@ -21,7 +21,7 @@ public class StoragePosQueryCriteria {
@QueryCondition
(
isDBId
=
true
)
private
String
storageId
;
@QueryCondition
(
blurry
=
"barcode.barcode"
)
@QueryCondition
(
propName
=
"barcode.barcode"
)
private
String
barcode
;
@QueryCondition
private
String
posName
;
...
...
src/main/java/com/neotel/smfcore/core/system/service/po/DataLog.java
查看文件 @
03cae85
...
...
@@ -7,6 +7,7 @@ import com.neotel.smfcore.common.base.BasePo;
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.hik.enums.IN_OUT_TYPE
;
import
com.neotel.smfcore.core.storage.service.po.Storage
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.core.system.bean.MSDAppendInfo
;
...
...
@@ -209,7 +210,7 @@ public class DataLog extends BasePo implements Serializable {
*/
private
Date
putInDate
;
/**
* 入库类型:1=普通入库,2=并盘入库,3=截料入库,4=退料入库
* 入库类型:1=普通入库,2=并盘入库,3=截料入库,4=退料入库
, 5=转储单入库
*/
private
int
inType
;
/**
...
...
@@ -337,8 +338,19 @@ public class DataLog extends BasePo implements Serializable {
* 是否是工单出库任务
*/
public
boolean
isOrderTask
(){
if
(
OP
.
CHECKOUT
==
type
&&
outType
==
10
){
return
true
;
if
(
OP
.
CHECKOUT
==
type
){
if
(
outType
==
IN_OUT_TYPE
.
OUT_ORDER
||
outType
==
IN_OUT_TYPE
.
OUT_REPLE
){
return
true
;
}
}
return
false
;
}
public
boolean
isOutListTask
(){
if
(
OP
.
CHECKOUT
==
type
){
if
(
outType
==
IN_OUT_TYPE
.
OUT_BETWEEN
||
outType
==
IN_OUT_TYPE
.
OUT_LIST
||
outType
==
IN_OUT_TYPE
.
OUT_TRANSFER
||
outType
==
IN_OUT_TYPE
.
OUT_SENDER
||
outType
==
IN_OUT_TYPE
.
OUT_CENTRAL
){
return
true
;
}
}
return
false
;
}
...
...
@@ -469,31 +481,8 @@ public class DataLog extends BasePo implements Serializable {
public
String
getDetailTypeStr
(){
int
detailType
=
getDetailType
();
String
detailTypeStr
=
""
;
//1=普通入库,2=并盘入库,3=截料入库,4=退料入库
if
(
detailType
==
1
){
detailTypeStr
=
"普通入库"
;
}
else
if
(
detailType
==
2
){
detailTypeStr
=
"并盘入库"
;
}
else
if
(
detailType
==
3
){
detailTypeStr
=
"截料入库"
;
}
else
if
(
detailType
==
4
){
detailTypeStr
=
"退料入库"
;
}
else
if
(
detailType
==
100
){
//0普通出库,1并盘出库 ,2湿敏出库 3线边仓间转储出库 ,10=工单出库
// * 4=转外协出库,发运单出库,成本中心领料:对应4,预留单出库;
detailTypeStr
=
"普通出库"
;
}
else
if
(
detailType
==
101
){
detailTypeStr
=
"并盘出库"
;
}
else
if
(
detailType
==
102
){
detailTypeStr
=
"湿敏出库"
;
}
else
if
(
detailType
==
103
){
detailTypeStr
=
"线边仓间转储出库"
;
}
else
if
(
detailType
==
104
){
detailTypeStr
=
"预留单出库"
;
}
else
if
(
detailType
==
110
){
detailTypeStr
=
"工单出库"
;
}
String
detailTypeStr
=
IN_OUT_TYPE
.
getDetailTypeStr
(
detailType
);
return
detailTypeStr
;
}
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
03cae85
...
...
@@ -16,6 +16,7 @@ import com.neotel.smfcore.core.device.bean.StatusBean;
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.hik.enums.IN_OUT_TYPE
;
import
com.neotel.smfcore.core.order.enums.LITEORDER_STATUS
;
import
com.neotel.smfcore.core.order.enums.ORDER_COLOR
;
import
com.neotel.smfcore.core.order.service.po.LiteOrder
;
...
...
@@ -114,7 +115,7 @@ public class TaskService {
DataLog
task
=
new
DataLog
(
storage
,
pos
.
getBarcode
(),
pos
);
task
.
setType
(
OP
.
CHECKOUT
);
if
(
pos
.
getBarcode
().
isLockMsl
()){
task
.
setOutType
(
2
);
//湿敏物料出库
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_MSL
);
//湿敏物料出库
}
task
.
setPutInDate
(
pos
.
getBarcode
().
getPutInDate
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
...
...
@@ -141,7 +142,7 @@ public class TaskService {
}
DataLog
task
=
new
DataLog
(
storage
,
pos
.
getBarcode
(),
pos
);
task
.
setType
(
OP
.
CHECKOUT
);
task
.
setOutType
(
1
);
//并盘出库
task
.
setOutType
(
IN_OUT_TYPE
.
OUT_MERGE
);
//并盘出库
task
.
setPutInDate
(
pos
.
getBarcode
().
getPutInDate
());
task
.
setStatus
(
OP_STATUS
.
WAIT
.
name
());
task
.
setSingleOut
(
isSingleOut
);
...
...
src/main/java/com/neotel/smfcore/core/system/websocket/SocketMsg.java
查看文件 @
03cae85
...
...
@@ -19,6 +19,8 @@ import lombok.AllArgsConstructor;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author ZhangHouYing
* @date 2019-08-10 9:55
...
...
@@ -27,6 +29,12 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public
class
SocketMsg
{
/**
* 要通知的用户名称列表
*/
private
List
<
String
>
users
;
private
String
msg
;
private
MsgType
msgType
;
...
...
src/main/java/com/neotel/smfcore/core/system/websocket/WebSocketServer.java
查看文件 @
03cae85
...
...
@@ -58,7 +58,7 @@ public class WebSocketServer {
@OnOpen
public
void
onOpen
(
Session
session
,
@PathParam
(
"sid"
)
String
sid
)
{
String
psid
=
sid
.
length
()>
20
?
sid
.
substring
(
0
,
20
):
sid
;
log
.
info
(
"["
+
psid
+
"]的webSocket已连接:"
+
session
.
getId
());
log
.
info
(
"["
+
psid
+
"]的webSocket已连接
,ID为
:"
+
session
.
getId
());
this
.
session
=
session
;
this
.
sid
=
sid
;
//如果存在就先删除一个,防止重复推送消息
...
...
@@ -69,6 +69,7 @@ public class WebSocketServer {
}
}
webSocketSet
.
add
(
this
);
log
.
info
(
"WebSocket已连接数量:"
+
webSocketSet
.
size
());
// for (int i =0;i<10;i++){
...
...
src/main/java/com/neotel/smfcore/hella/handler/HellaServiceHandler.java
查看文件 @
03cae85
...
...
@@ -197,10 +197,11 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
if
(
respCommand
.
isOkResp
()){
ResultBean
okResult
=
ResultBean
.
newOkResult
(
"smfcore.loadMaterialFinished"
,
"loading material is finished: {0}"
,
new
String
[]{
messageText
},
""
);
WebSocketServer
.
sendMsg
(
requestCommand
.
getToken
(),
new
SocketMsg
(
okResult
.
getMsg
(),
MsgType
.
INFO
,
"smfclient.loadMaterialFinished"
,
new
String
[]{
messageText
}));
WebSocketServer
.
sendMsg
(
requestCommand
.
getToken
(),
new
SocketMsg
(
null
,
okResult
.
getMsg
(),
MsgType
.
INFO
,
"smfclient.loadMaterialFinished"
,
new
String
[]{
messageText
}));
}
else
{
ResultBean
ngResult
=
ResultBean
.
newErrorResult
(
Integer
.
valueOf
(
returnCode
),
"smfcore.loadMaterialFailed"
,
"loading material failed:{0}"
,
new
String
[]{
messageText
}
);
WebSocketServer
.
sendMsg
(
requestCommand
.
getToken
(),
new
SocketMsg
(
ngResult
.
getMsg
(),
MsgType
.
ERROR
,
"smfclient.loadMaterialFailed"
,
new
String
[]{
messageText
}));
WebSocketServer
.
sendMsg
(
requestCommand
.
getToken
(),
new
SocketMsg
(
n
ull
,
n
gResult
.
getMsg
(),
MsgType
.
ERROR
,
"smfclient.loadMaterialFailed"
,
new
String
[]{
messageText
}));
}
commandMap
.
remove
(
respCommand
.
getEventId
());
}
else
if
(
respCommand
.
isUnloadMaterialCmd
()){
...
...
@@ -422,15 +423,15 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
try
{
taskService
.
addTaskToExecute
(
dataLog
);
ResultBean
okResult
=
ResultBean
.
newOkResult
(
"checking material is ok: "
+
messageText
);
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
okResult
.
getMsg
(),
MsgType
.
INFO
,
"smfclient.checkingMaterialOk"
,
new
String
[]{
messageText
}));
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
null
,
okResult
.
getMsg
(),
MsgType
.
INFO
,
"smfclient.checkingMaterialOk"
,
new
String
[]{
messageText
}));
}
catch
(
Exception
e
){
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
e
.
getMessage
(),
MsgType
.
INFO
,
"smfclient.nlp.error"
,
new
String
[]{
e
.
getMessage
()}));
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
null
,
e
.
getMessage
(),
MsgType
.
INFO
,
"smfclient.nlp.error"
,
new
String
[]{
e
.
getMessage
()}));
}
}
else
{
//NG,需要在界面上进行提示
ResultBean
ngResult
=
ResultBean
.
newErrorResult
(
Integer
.
valueOf
(
returnCode
),
"smfcore.checkNg"
,
"checking material is ng:{0}"
,
new
String
[]{
messageText
}
);
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
ngResult
.
getMsg
(),
MsgType
.
ERROR
,
"smfclient.checkNg"
,
new
String
[]{
messageText
}));
WebSocketServer
.
sendMsg
(
token
,
new
SocketMsg
(
n
ull
,
n
gResult
.
getMsg
(),
MsgType
.
ERROR
,
"smfclient.checkNg"
,
new
String
[]{
messageText
}));
}
commandMap
.
remove
(
respCommand
.
getEventId
());
}
...
...
src/main/java/com/neotel/smfcore/security/service/manager/IUserManager.java
查看文件 @
03cae85
...
...
@@ -66,6 +66,8 @@ public interface IUserManager extends IBaseManager<User> {
List
<
User
>
findByRoleId
(
String
roleId
);
List
<
String
>
findByDeviceGroupId
(
String
deviceGroupId
);
void
download
(
List
<
User
>
users
,
HttpServletResponse
response
,
Locale
locale
)
throws
IOException
;
void
updateEmail
(
String
username
,
String
email
);
...
...
src/main/java/com/neotel/smfcore/security/service/manager/impl/UserManagerImpl.java
查看文件 @
03cae85
package
com
.
neotel
.
smfcore
.
security
.
service
.
manager
.
impl
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.bean.PageData
;
import
com.neotel.smfcore.common.exception.ValidateException
;
import
com.neotel.smfcore.common.utils.*
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.core.storage.service.po.StoragePos
;
import
com.neotel.smfcore.security.rest.bean.dto.RoleSmallDto
;
import
com.neotel.smfcore.security.rest.bean.dto.UserDto
;
import
com.neotel.smfcore.security.rest.bean.mapstruct.RoleMapper
;
import
com.neotel.smfcore.security.rest.bean.mapstruct.UserMapper
;
import
com.neotel.smfcore.security.service.dao.IUserDao
;
import
com.neotel.smfcore.security.service.manager.IRoleManager
;
...
...
@@ -17,7 +13,6 @@ import com.neotel.smfcore.security.service.po.Role;
import
com.neotel.smfcore.security.service.po.User
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
...
...
@@ -28,7 +23,6 @@ import org.springframework.util.ObjectUtils;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* Created by kangmor on 2015/12/1.
...
...
@@ -168,6 +162,21 @@ public class UserManagerImpl implements IUserManager {
List
<
User
>
users
=
userDao
.
findByQuery
(
query
);
return
users
;
}
@Override
public
List
<
String
>
findByDeviceGroupId
(
String
deviceGroupId
){
List
<
String
>
userNames
=
new
ArrayList
<>();
if
(
deviceGroupId
==
null
||
deviceGroupId
.
isEmpty
()){
return
userNames
;
}
Query
query
=
new
Query
(
Criteria
.
where
(
"groups"
).
is
(
deviceGroupId
));
List
<
User
>
users
=
userDao
.
findByQuery
(
query
);
for
(
User
user
:
users
)
{
userNames
.
add
(
user
.
getUsername
());
}
return
userNames
;
}
@Override
public
void
download
(
List
<
User
>
queryAll
,
HttpServletResponse
response
,
Locale
locale
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
...
...
src/main/resources/config/application.yml
查看文件 @
03cae85
...
...
@@ -86,7 +86,7 @@ spring:
freemarker
:
check-template-location
:
false
profiles
:
active
:
'
@package.environment@
'
active
:
'
dev
'
jackson
:
time-zone
:
GMT+8
data
:
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论