Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 2f44da71
由
sunke
编写于
2022-06-28 17:09:03 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
菜单功能重构
1 个父辈
d89f1ab3
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
226 行增加
和
161 行删除
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
src/main/java/com/neotel/smfcore/common/utils/PermissionInitUtil.java
src/main/java/com/neotel/smfcore/core/language/util/LanguageMsgService.java
src/main/java/com/neotel/smfcore/security/service/manager/IMenuManager.java
src/main/java/com/neotel/smfcore/security/service/manager/impl/MenuManagerImpl.java
src/main/java/com/neotel/smfcore/security/service/po/Menu.java
src/main/resources/config/application.yml
src/main/java/com/neotel/smfcore/common/init/DataInitManager.java
查看文件 @
2f44da7
...
...
@@ -8,6 +8,7 @@ import com.neotel.smfcore.core.message.service.manager.IMessageManager;
import
com.neotel.smfcore.core.message.service.po.Message
;
import
com.neotel.smfcore.core.message.util.DeviceMessageUtil
;
import
com.neotel.smfcore.core.order.util.OrderFileWatch
;
import
com.neotel.smfcore.security.rest.bean.vo.MenuVo
;
import
com.neotel.smfcore.security.service.manager.IMenuManager
;
import
com.neotel.smfcore.security.service.manager.IRoleManager
;
import
com.neotel.smfcore.security.service.manager.IUserManager
;
...
...
@@ -15,6 +16,7 @@ import com.neotel.smfcore.security.service.po.Menu;
import
com.neotel.smfcore.security.service.po.Role
;
import
com.neotel.smfcore.security.service.po.User
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.util.Strings
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.mongodb.core.query.Criteria
;
...
...
@@ -30,6 +32,12 @@ public class DataInitManager {
public
static
Set
<
String
>
allPermissionSet
;
@Value
(
"${menu.show}"
)
private
String
[]
menuShowList
;
@Value
(
"${menu.hide}"
)
private
String
[]
menuHideList
;
@Autowired
IUserManager
userManager
;
@Autowired
...
...
@@ -70,47 +78,26 @@ public class DataInitManager {
//查询admin的用户是否存在
String
userName
=
Constants
.
SUPER_USERNAME
;
User
admin
=
userManager
.
findByUserName
(
userName
);
if
(
admin
==
null
)
{
log
.
info
(
"开始创建默认菜单..."
);
Set
<
String
>
menuIdSet
=
MenuInitNew
();
if
(
admin
==
null
)
{
log
.
info
(
"开始创建默认用户..."
);
Set
<
String
>
groupIds
=
new
HashSet
<>();
Role
role
=
new
Role
(
menuIdSet
,
"admin"
,
"admin"
);
Role
role
=
new
Role
(
new
HashSet
<>(),
"admin"
,
"admin"
);
role
=
roleManager
.
save
(
role
);
log
.
info
(
"创建默认角色:"
+
role
.
toString
());
Role
operator
=
new
Role
(
menuIdSet
,
"operator"
,
"operator"
);
Role
operator
=
new
Role
(
new
HashSet
<>()
,
"operator"
,
"operator"
);
operator
=
roleManager
.
save
(
operator
);
log
.
info
(
"创建默认角色:"
+
operator
.
toString
());
admin
=
new
User
(
userName
,
"admin@qq.com"
,
"zh-CN"
,
role
.
getId
(),
"$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa"
,
true
,
true
,
new
Date
(),
groupIds
,
""
);
userManager
.
save
(
admin
);
admin
=
userManager
.
save
(
admin
);
log
.
info
(
"创建默认用户:"
+
admin
.
toString
());
log
.
info
(
"创建默认菜单完成..."
);
}
else
{
log
.
info
(
"初始化环境完成..."
);
}
List
<
Menu
>
helpMenus
=
menuManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"title"
).
is
(
"帮助"
)));
if
(
helpMenus
==
null
||
helpMenus
.
size
()
<=
0
)
{
Menu
helpAbout
=
Menu
.
CreatePMenu
(
"帮助"
,
30
,
"help"
,
2
,
"help"
);
Menu
instruMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"instruction"
,
"说明书"
,
1
,
"instruction"
,
"system/instruction/index"
,
""
,
0
,
"aboutBook"
);
Menu
aboutMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"about"
,
"关于"
,
1
,
"about"
,
"system/about/index"
,
""
,
0
,
"message"
);
createMenus
(
helpAbout
,
instruMenu
,
aboutMenu
);
}
List
<
Menu
>
menus
=
menuManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"path"
).
ne
(
""
)));
for
(
Menu
me
:
menus
)
{
if
(
me
.
getTitleKey
()
==
null
||
me
.
getTitleKey
()
==
""
)
{
me
.
setTitleKey
(
me
.
getPath
());
menuManager
.
saveMenu
(
me
);
}
}
updateMenu
(
menuShowList
,
menuHideList
);
mainTimer
.
init
();
...
...
@@ -123,13 +110,11 @@ public class DataInitManager {
Message
message
=
Message
.
newMsg
(
MessageType
.
INFO
,
"server"
,
""
,
""
,
"smfcore.messages.serverStart"
,
"服务器启动"
,
null
);
messageManager
.
save
(
message
);
}
catch
(
Exception
exception
)
{
log
.
error
(
"初始化环境出错..."
+
exception
.
toString
());
log
.
error
(
"初始化环境出错..."
+
exception
.
toString
()
,
exception
);
}
}
private
int
sortValue
=
0
;
private
List
<
Menu
>
createMenus
(
Menu
pMenu
,
Menu
...
subMenus
)
{
List
<
Menu
>
list
=
new
ArrayList
<
Menu
>();
...
...
@@ -184,153 +169,214 @@ public class DataInitManager {
private
Set
<
String
>
MenuInitNew
()
{
/**
* 循环创建父级菜单
*/
private
Menu
createMenu
(
Menu
menu
){
Menu
dbMenu
=
menuManager
.
findByPath
(
menu
.
getPath
());
if
(
dbMenu
==
null
){
//数据库不存在,需要插入
Menu
parentMenu
=
menu
.
getParentMenu
();
if
(
parentMenu
!=
null
){
parentMenu
=
createMenu
(
parentMenu
);
menu
.
setPid
(
parentMenu
.
getId
());
menu
.
setParentMenu
(
parentMenu
);
}
log
.
info
(
"创建菜单:"
+
menu
.
toString
());
dbMenu
=
menuManager
.
saveMenu
(
menu
);
}
return
dbMenu
;
}
private
void
addNewFunctionMenu
(
Menu
parentMenu
,
String
permission
,
String
title
,
String
path
,
String
component
,
String
icon
,
Map
<
String
,
Menu
>
functionMenuMap
){
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
permission
,
title
,
1
,
path
,
component
,
""
,
0
,
icon
);
menu
.
setParentMenu
(
parentMenu
);
functionMenuMap
.
put
(
menu
.
getPath
(),
menu
);
}
private
Map
<
String
,
Menu
>
getAllMenuMap
(){
//功能菜单(不包含父级菜单),key为path
Map
<
String
,
Menu
>
functionMenuMap
=
new
HashMap
<>();
boolean
isMimo
=
appType
.
equals
(
"mimo"
);
List
<
Menu
>
menus
=
new
ArrayList
<
Menu
>();
//设备看板
Menu
menukanban
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"boxkanban"
,
"设备看板"
,
1
,
"lockMaterial"
,
"lockMaterial/material/index"
,
""
,
0
,
"kanban"
);
menus
.
addAll
(
createMenus
(
menukanban
));
// //料架分组
// Menu menuShelf = new Menu(new ArrayList<Menu>(), 1, "sensorShelf", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "neo1");
// menuShelf.setHidden(true);
// menus.addAll(createMenus(menuShelf));
addNewFunctionMenu
(
null
,
"boxkanban"
,
"设备看板"
,
"lockMaterial"
,
"lockMaterial/material/index"
,
"kanban"
,
functionMenuMap
);
//物料管理:工单出库,查找出库(UID出库,PN出库),物料标签,料盒操作,出库策略,工单设置
Menu
poutOut
=
Menu
.
CreatePMenu
(
"物料管理"
,
20
,
"order"
,
2
,
"workOrder"
);
Menu
menuOrder
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"workOrder"
,
"工单出库"
,
1
,
"workOrder"
,
"neolight/workOrder/index"
,
""
,
0
,
"orderOut"
);
Menu
out
=
Menu
.
CreatePMenu
(
"查找出库"
,
20
,
"searchOut"
,
2
,
"findOut"
);
Menu
menuOut
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"checkOut"
,
"UID出库"
,
1
,
"singleOuput"
,
"neolight/singleOuput/index"
,
""
,
0
,
"export1"
);
Menu
celueOut
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"tacticsOuput"
,
"PN出库"
,
1
,
"tacticsOuput"
,
"neolight/tacticsOuput/index"
,
""
,
0
,
"tacticsOuput"
);
out
.
setChildren
(
Arrays
.
asList
((
new
Menu
[]{
menuOut
,
celueOut
})));
Menu
posOut
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"posOutput"
,
"库位出库"
,
1
,
"posOutput"
,
"system/posOutput/index"
,
""
,
0
,
"swagger"
);
Menu
groupOut
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"labelOuput"
,
"物料标签"
,
1
,
"labelOuput"
,
"neolight/labelOuput/index"
,
""
,
0
,
"mgroup"
);
// Menu manualOut = new Menu(new ArrayList<Menu>(), 1, "manualOut", "手动出库", 1, "manualOut", "neolight/manualOut/index", "", 0, "export1");
Menu
materialBox
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"materialBox"
,
"料盒操作"
,
1
,
"materialBox"
,
"neolight/materialBox/index"
,
""
,
0
,
"mIbox"
);
Menu
outSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"outSetting"
,
"出库策略"
,
1
,
"outSetting"
,
"system/outSetting/index"
,
""
,
0
,
"outSet"
);
// Menu orderSet = new Menu(new ArrayList<Menu>(), 1, "orderSetting", "工单设置", 1, "orderSetting", "system/orderSetting/index", "", 0, "sysSet");
Menu
inOrderMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"inList"
,
"入库单"
,
1
,
"inList"
,
"system/inList/index"
,
""
,
0
,
"headIcon"
);
Menu
putinMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"putIn"
,
"物料入库"
,
1
,
"putIn"
,
"system/putIn/index"
,
""
,
0
,
"headIcon"
);
Menu
zhuanruMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"dumpWarehousing"
,
"转储入库"
,
1
,
"dumpWarehousing"
,
"system/dumpWarehousing/index"
,
""
,
0
,
"headIcon"
);
Menu
singleMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"singleDiskWarehousing"
,
"单盘入库"
,
1
,
"singleDiskWarehousing"
,
"system/singleDiskWarehousing/index"
,
""
,
0
,
"headIcon"
);
Menu
sluggishMaterials
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"sluggishMaterials"
,
"呆滞物料"
,
1
,
"sluggishMaterials"
,
"system/sluggishMaterials/index"
,
""
,
0
,
"sMaterial"
);
Menu
safetyInventory
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"safetyInventory"
,
"安全库存"
,
1
,
"safetyInventory"
,
"system/safetyInventory/index"
,
""
,
0
,
"safeInventory"
);
celueOut
.
setHidden
(
true
);
groupOut
.
setHidden
(
true
);
materialBox
.
setHidden
(
true
);
outSet
.
setHidden
(
true
);
posOut
.
setHidden
(
true
);
zhuanruMenu
.
setHidden
(
true
);
singleMenu
.
setHidden
(
true
);
inOrderMenu
.
setHidden
(
isMimo
);
putinMenu
.
setHidden
(
isMimo
);
// orderSet.setHidden(true);
menus
.
addAll
(
createMenus
(
poutOut
,
menuOrder
,
out
,
posOut
,
groupOut
,
materialBox
,
outSet
,
inOrderMenu
,
putinMenu
,
zhuanruMenu
,
singleMenu
,
sluggishMaterials
,
safetyInventory
));
Menu
poutOut
=
Menu
.
CreatePMenu
(
"物料管理"
,
1
,
"order"
,
2
,
"workOrder"
,
null
);
Menu
out
=
Menu
.
CreatePMenu
(
"查找出库"
,
11
,
"searchOut"
,
2
,
"findOut"
,
poutOut
);
addNewFunctionMenu
(
out
,
"checkOut"
,
"UID出库"
,
"singleOuput"
,
"neolight/singleOuput/index"
,
"export1"
,
functionMenuMap
);
addNewFunctionMenu
(
out
,
"tacticsOuput"
,
"PN出库"
,
"tacticsOuput"
,
"neolight/tacticsOuput/index"
,
"tacticsOuput"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"posOutput"
,
"库位出库"
,
"posOutput"
,
"system/posOutput/index"
,
"swagger"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"labelOuput"
,
"物料标签"
,
"labelOuput"
,
"neolight/labelOuput/index"
,
"mgroup"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"materialBox"
,
"料盒操作"
,
"materialBox"
,
"neolight/materialBox/index"
,
"mIbox"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"outSetting"
,
"出库策略"
,
"outSetting"
,
"system/outSetting/index"
,
"outSet"
,
functionMenuMap
);
// Menu orderSet = new Menu(, "orderSetting", "工单设置", "orderSetting", "system/orderSetting/index", "sysSet");
addNewFunctionMenu
(
poutOut
,
"inList"
,
"入库单"
,
"inList"
,
"system/inList/index"
,
"headIcon"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"putIn"
,
"物料入库"
,
"putIn"
,
"system/putIn/index"
,
"headIcon"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"dumpWarehousing"
,
"转储入库"
,
"dumpWarehousing"
,
"system/dumpWarehousing/index"
,
"headIcon"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"singleDiskWarehousing"
,
"单盘入库"
,
"singleDiskWarehousing"
,
"system/singleDiskWarehousing/index"
,
"headIcon"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"sluggishMaterials"
,
"呆滞物料"
,
"sluggishMaterials"
,
"system/sluggishMaterials/index"
,
"sMaterial"
,
functionMenuMap
);
addNewFunctionMenu
(
poutOut
,
"safetyInventory"
,
"安全库存"
,
"safetyInventory"
,
"system/safetyInventory/index"
,
"safeInventory"
,
functionMenuMap
);
//MSD管理:MSD库存.MSD追溯性.MSD设置
Menu
msd
=
Menu
.
CreatePMenu
(
"MSD管理"
,
20
,
"msd"
,
2
,
"MSD"
);
Menu
msdManage
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"msdManage"
,
"MSD库存"
,
1
,
"msdManage"
,
"neolight/msdManage/index"
,
""
,
0
,
"MSDManager"
);
Menu
msdData
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"msdData"
,
"MSD追溯性"
,
1
,
"msdData"
,
"neolight/msdData/index"
,
""
,
0
,
"MSDData"
);
Menu
msdSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"msdSetting"
,
"MSD设置"
,
1
,
"msdSetting"
,
"neolight/msdSetting/index"
,
""
,
0
,
"MSDSet"
);
msd
.
setHidden
(
true
);
menus
.
addAll
(
createMenus
(
msd
,
msdManage
,
msdData
,
msdSetting
));
Menu
msd
=
Menu
.
CreatePMenu
(
"MSD管理"
,
2
,
"msd"
,
2
,
"MSD"
,
null
);
addNewFunctionMenu
(
msd
,
"msdManage"
,
"MSD库存"
,
"msdManage"
,
"neolight/msdManage/index"
,
"MSDManager"
,
functionMenuMap
);
addNewFunctionMenu
(
msd
,
"msdData"
,
"MSD追溯性"
,
"msdData"
,
"neolight/msdData/index"
,
"MSDData"
,
functionMenuMap
);
addNewFunctionMenu
(
msd
,
"msdSetting"
,
"MSD设置"
,
"msdSetting"
,
"neolight/msdSetting/index"
,
"MSDSet"
,
functionMenuMap
);
//锡膏管理:设备概览.库存.追溯性.设置
Menu
solderPaste
=
Menu
.
CreatePMenu
(
"锡膏管理"
,
20
,
"solderPaste"
,
2
,
"sMana"
);
Menu
solderPasteKanban
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"solderPasteKanban"
,
"设备概览"
,
1
,
"solderPasteKanban"
,
"neolight/solderPasteKanban/index"
,
""
,
0
,
"sKanban"
);
Menu
solderPasteManage
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"solderPasteManage"
,
"库存"
,
1
,
"solderPasteManage"
,
"neolight/solderPasteManage/index"
,
""
,
0
,
"solder"
);
Menu
solderPasteData
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"solderPasteData"
,
"追溯性"
,
1
,
"solderPasteData"
,
"neolight/solderPasteData/index"
,
""
,
0
,
"sData"
);
Menu
solderPasteSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"solderPasteSetting"
,
"设置"
,
1
,
"solderPasteSetting"
,
"neolight/solderPasteSetting/index"
,
""
,
0
,
"system"
);
solderPaste
.
setHidden
(
true
);
menus
.
addAll
(
createMenus
(
solderPaste
,
solderPasteKanban
,
solderPasteManage
,
solderPasteData
,
solderPasteSetting
));
//物料管理:元器件,条形码,条码设置
Menu
pMenuWl
=
Menu
.
CreatePMenu
(
"档案管理"
,
30
,
"materiel "
,
2
,
"BOM"
);
Menu
menucom
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"component:list"
,
"元器件"
,
1
,
"componentParts"
,
"parts/component/index"
,
""
,
0
,
"server"
);
// Menu menubarcode = new Menu(new ArrayList<Menu>(), 1, "barcode:list", "条形码", 1, "barcode", "barcode/barcode/index", "", 0, "chart");
// Menu sysSetting = new Menu(new ArrayList<Menu>(), 1, "barcode", "条码设置", 1, "barcodeSetting", "system/barcodeSetting/index", "", 0, "barcode");
// menus.addAll(createMenus(pMenuWl, menucom, menubarcode,sysSetting));
menus
.
addAll
(
createMenus
(
pMenuWl
,
menucom
));
Menu
pMenuBarcode
=
Menu
.
CreatePMenu
(
"条形码"
,
30
,
"barcodes "
,
2
,
"barcodeMenu"
);
Menu
menubarcode
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"barcode:list"
,
"条码管理"
,
1
,
"barcode"
,
"barcode/barcode/index"
,
""
,
0
,
"chart"
);
Menu
sysSetting
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"barcode"
,
"条码设置"
,
1
,
"barcodeSetting"
,
"system/barcodeSetting/index"
,
""
,
0
,
"barcode"
);
menus
.
addAll
(
createMenus
(
pMenuBarcode
,
menubarcode
,
sysSetting
));
Menu
solderPaste
=
Menu
.
CreatePMenu
(
"锡膏管理"
,
3
,
"solderPaste"
,
2
,
"sMana"
,
null
);
addNewFunctionMenu
(
solderPaste
,
"solderPasteKanban"
,
"设备概览"
,
"solderPasteKanban"
,
"neolight/solderPasteKanban/index"
,
"sKanban"
,
functionMenuMap
);
addNewFunctionMenu
(
solderPaste
,
"solderPasteManage"
,
"库存"
,
"solderPasteManage"
,
"neolight/solderPasteManage/index"
,
"solder"
,
functionMenuMap
);
addNewFunctionMenu
(
solderPaste
,
"solderPasteData"
,
"追溯性"
,
"solderPasteData"
,
"neolight/solderPasteData/index"
,
"sData"
,
functionMenuMap
);
addNewFunctionMenu
(
solderPaste
,
"solderPasteSetting"
,
"设置"
,
"solderPasteSetting"
,
"neolight/solderPasteSetting/index"
,
"system"
,
functionMenuMap
);
//档案管理:元器件
Menu
pMenuWl
=
Menu
.
CreatePMenu
(
"档案管理"
,
4
,
"materiel "
,
2
,
"BOM"
,
null
);
addNewFunctionMenu
(
pMenuWl
,
"component:list"
,
"元器件"
,
"componentParts"
,
"parts/component/index"
,
"server"
,
functionMenuMap
);
//条形码:条码管理,条码设置
Menu
pMenuBarcode
=
Menu
.
CreatePMenu
(
"条形码"
,
5
,
"barcodes "
,
2
,
"barcodeMenu"
,
null
);
addNewFunctionMenu
(
pMenuBarcode
,
"barcode:list"
,
"条码管理"
,
"barcode"
,
"barcode/barcode/index"
,
"chart"
,
functionMenuMap
);
addNewFunctionMenu
(
pMenuBarcode
,
"barcode"
,
"条码设置"
,
"barcodeSetting"
,
"system/barcodeSetting/index"
,
"barcode"
,
functionMenuMap
);
//日志管理:物料日志
Menu
pMenuLog
=
Menu
.
CreatePMenu
(
"日志管理"
,
30
,
"log"
,
2
,
"log"
);
Menu
menuLog
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"taskLog"
,
"物料日志"
,
1
,
"taskLog"
,
"neolight/taskLog/index"
,
""
,
0
,
"education"
);
Menu
msgLog
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"message"
,
"消息查询"
,
1
,
"message"
,
"neolight/message/index"
,
""
,
0
,
"messagefind"
);
Menu
exceptionLog
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"interfaceException"
,
"接口异常"
,
1
,
"interfaceException"
,
"neolight/interfaceException/index"
,
""
,
0
,
"messagefind"
);
exceptionLog
.
setHidden
(
true
);
menus
.
addAll
(
createMenus
(
pMenuLog
,
menuLog
,
msgLog
,
exceptionLog
));
Menu
pMenuLog
=
Menu
.
CreatePMenu
(
"日志管理"
,
6
,
"log"
,
2
,
"log"
,
null
);
addNewFunctionMenu
(
pMenuLog
,
"taskLog"
,
"物料日志"
,
"taskLog"
,
"neolight/taskLog/index"
,
"education"
,
functionMenuMap
);
addNewFunctionMenu
(
pMenuLog
,
"message"
,
"消息查询"
,
"message"
,
"neolight/message/index"
,
"messagefind"
,
functionMenuMap
);
addNewFunctionMenu
(
pMenuLog
,
"interfaceException"
,
"接口异常"
,
"interfaceException"
,
"neolight/interfaceException/index"
,
"messagefind"
,
functionMenuMap
);
//报表:出入库、库存
Menu
pMenuReport
=
Menu
.
CreatePMenu
(
"报表"
,
30
,
"report"
,
2
,
"inOutData"
);
Menu
inOutMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"inOutData"
,
"出入库"
,
1
,
"inOutData"
,
"neolight/inOutData/index"
,
""
,
0
,
"outPut"
);
Menu
inventoryMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"inventory"
,
"库存"
,
1
,
"inventory"
,
"neolight/inventory/index"
,
""
,
0
,
"inventory"
);
menus
.
addAll
(
createMenus
(
pMenuReport
,
inOutMenu
,
inventoryMenu
));
Menu
pMenuReport
=
Menu
.
CreatePMenu
(
"报表"
,
7
,
"report"
,
2
,
"inOutData"
,
null
);
addNewFunctionMenu
(
pMenuReport
,
"inOutData"
,
"出入库"
,
"inOutData"
,
"neolight/inOutData/index"
,
"outPut"
,
functionMenuMap
);
addNewFunctionMenu
(
pMenuReport
,
"inventory"
,
"库存"
,
"inventory"
,
"neolight/inventory/index"
,
"inventory"
,
functionMenuMap
);
//可观测性:物料追踪
Menu
guanceMenu
=
Menu
.
CreatePMenu
(
"可观测性"
,
30
,
"observability"
,
2
,
"scanKey"
);
Menu
zuizongMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"materialChart"
,
"物料追踪"
,
1
,
"materialChart"
,
"neolight/materialChart/index"
,
""
,
0
,
"maChart"
);
guanceMenu
.
setHidden
(
true
);
menus
.
addAll
(
createMenus
(
guanceMenu
,
zuizongMenu
));
Menu
guanceMenu
=
Menu
.
CreatePMenu
(
"可观测性"
,
8
,
"observability"
,
2
,
"scanKey"
,
null
);
addNewFunctionMenu
(
guanceMenu
,
"materialChart"
,
"物料追踪"
,
"materialChart"
,
"neolight/materialChart/index"
,
"maChart"
,
functionMenuMap
);
//物联网:共享文件夹
Menu
pMenuWulian
=
Menu
.
CreatePMenu
(
"物联网"
,
30
,
"internet"
,
2
,
"interMenu"
);
Menu
orderSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"orderSetting"
,
"共享文件夹"
,
1
,
"orderSetting"
,
"system/orderSetting/index"
,
""
,
0
,
"sysSet"
);
orderSet
.
setHidden
(
true
);
pMenuWulian
.
setHidden
(
true
);
menus
.
addAll
(
createMenus
(
pMenuWulian
,
orderSet
));
Menu
pMenuWulian
=
Menu
.
CreatePMenu
(
"物联网"
,
9
,
"internet"
,
2
,
"interMenu"
,
null
);
addNewFunctionMenu
(
pMenuWulian
,
"orderSetting"
,
"共享文件夹"
,
"orderSetting"
,
"system/orderSetting/index"
,
"sysSet"
,
functionMenuMap
);
//设置:料仓管理,菜单管理
Menu
poutSet
=
Menu
.
CreatePMenu
(
"设置"
,
30
,
"system"
,
2
,
"system"
);
Menu
menuStorage
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"storage:list"
,
"设备管理"
,
1
,
"bunker"
,
"storage/storage/index"
,
""
,
0
,
"database"
);
Menu
menuStoragePos
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"storagePos:list"
,
"库位管理"
,
1
,
"storagePos"
,
"storagePos/storagePos/index"
,
""
,
0
,
"tree-table"
);
Menu
menuMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"menu:list"
,
"菜单管理"
,
1
,
"menu"
,
"system/menu/index"
,
""
,
0
,
"menu"
);
// Menu sysSetting = new Menu(new ArrayList<Menu>(), 1, "barcode", "条码设置", 1, "barcodeSetting", "system/barcodeSetting/index", "", 0, "database");
// Menu outSet = new Menu(new ArrayList<Menu>(), 1, "outSetting", "出库策略", 1, "outSetting", "system/outSetting/index", "", 0, "outSet");
Menu
sysSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"sysSetting"
,
"系统设置"
,
1
,
"sysSetting"
,
"system/sysSetting/index"
,
""
,
0
,
"sysSet"
);
Menu
translationSet
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"translation"
,
"资源翻译"
,
1
,
"translation"
,
"system/translation/index"
,
""
,
0
,
"translation"
);
// Menu orderSet = new Menu(new ArrayList<Menu>(), 1, "orderSetting", "工单设置", 1, "orderSetting", "system/orderSetting/index", "", 0, "sysSet");
Menu
shelfMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"shelfSetting"
,
"料架设置"
,
1
,
"shelfSetting"
,
"system/shelfSetting/index"
,
""
,
0
,
"translation"
);
// outSet.setHidden(true);
// orderSet.setHidden(true);
menuMenu
.
setHidden
(
true
);
translationSet
.
setHidden
(
true
);
shelfMenu
.
setHidden
(
isMimo
);
menus
.
addAll
(
createMenus
(
poutSet
,
menuStorage
,
menuStoragePos
,
menuMenu
,
sysSet
,
translationSet
,
shelfMenu
));
Menu
poutSet
=
Menu
.
CreatePMenu
(
"设置"
,
10
,
"system"
,
2
,
"system"
,
null
);
addNewFunctionMenu
(
poutSet
,
"storage:list"
,
"设备管理"
,
"bunker"
,
"storage/storage/index"
,
"database"
,
functionMenuMap
);
addNewFunctionMenu
(
poutSet
,
"storagePos:list"
,
"库位管理"
,
"storagePos"
,
"storagePos/storagePos/index"
,
"tree-table"
,
functionMenuMap
);
addNewFunctionMenu
(
poutSet
,
"menu:list"
,
"菜单管理"
,
"menu"
,
"system/menu/index"
,
"menu"
,
functionMenuMap
);
// Menu sysSetting = new Menu(, "barcode", "条码设置", "barcodeSetting", "system/barcodeSetting/index", "database");
// Menu outSet = new Menu(, "outSetting", "出库策略", "outSetting", "system/outSetting/index", "outSet");
addNewFunctionMenu
(
poutSet
,
"sysSetting"
,
"系统设置"
,
"sysSetting"
,
"system/sysSetting/index"
,
"sysSet"
,
functionMenuMap
);
addNewFunctionMenu
(
poutSet
,
"translation"
,
"资源翻译"
,
"translation"
,
"system/translation/index"
,
"translation"
,
functionMenuMap
);
// Menu orderSet = new Menu(, "orderSetting", "工单设置", "orderSetting", "system/orderSetting/index", "sysSet");
addNewFunctionMenu
(
poutSet
,
"shelfSetting"
,
"料架设置"
,
"shelfSetting"
,
"system/shelfSetting/index"
,
"translation"
,
functionMenuMap
);
//用户管理:用户管理,角色管理
Menu
pMenuUser
=
Menu
.
CreatePMenu
(
"用户管理"
,
11
,
"userManager"
,
2
,
"Steve-Jobs"
,
null
);
addNewFunctionMenu
(
pMenuUser
,
"user:list"
,
"用户管理"
,
"peoples"
,
"system/user/index"
,
"peoples"
,
functionMenuMap
);
addNewFunctionMenu
(
pMenuUser
,
"role:list"
,
"角色管理"
,
"role"
,
"system/role/index"
,
"role"
,
functionMenuMap
);
Menu
pMenuUser
=
Menu
.
CreatePMenu
(
"用户管理"
,
30
,
"userManager"
,
2
,
"Steve-Jobs"
);
Menu
menuUser
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"user:list"
,
"用户管理"
,
1
,
"peoples"
,
"system/user/index"
,
""
,
0
,
"peoples"
);
Menu
menuRole
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"role:list"
,
"角色管理"
,
1
,
"role"
,
"system/role/index"
,
""
,
0
,
"role"
);
menus
.
addAll
(
createMenus
(
pMenuUser
,
menuUser
,
menuRole
));
Menu
helpAbout
=
Menu
.
CreatePMenu
(
"帮助"
,
12
,
"help"
,
2
,
"help"
,
null
);
addNewFunctionMenu
(
helpAbout
,
"instruction"
,
"说明书"
,
"instruction"
,
"system/instruction/index"
,
"aboutBook"
,
functionMenuMap
);
addNewFunctionMenu
(
helpAbout
,
"about"
,
"关于"
,
"about"
,
"system/about/index"
,
"message"
,
functionMenuMap
);
Menu
helpAbout
=
Menu
.
CreatePMenu
(
"帮助"
,
30
,
"help"
,
2
,
"help"
);
Menu
instruMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"instruction"
,
"说明书"
,
1
,
"instruction"
,
"system/instruction/index"
,
""
,
0
,
"aboutBook"
);
Menu
aboutMenu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
1
,
"about"
,
"关于"
,
1
,
"about"
,
"system/about/index"
,
""
,
0
,
"message"
);
instruMenu
.
setHidden
(
true
);
menus
.
addAll
(
createMenus
(
helpAbout
,
instruMenu
,
aboutMenu
));
return
functionMenuMap
;
}
Set
<
String
>
menuIdSet
=
new
HashSet
<
String
>()
{};
for
(
Menu
menu
:
menus
)
{
log
.
info
(
"创建默认菜单:"
+
menu
.
toString
());
menuIdSet
.
add
(
menu
.
getId
());
private
void
updateMenu
(
String
[]
menuListToShow
,
String
[]
menuListToHide
){
List
<
Menu
>
dbMenus
=
menuManager
.
findAll
();
if
(
dbMenus
.
isEmpty
()){
log
.
info
(
"创建默认菜单..."
);
menuListToShow
=
new
String
[]{
"lockMaterial"
,
//设备看板
"singleOuput"
,
"tacticsOuput"
,
"outSetting"
,
"componentParts"
,
"barcode"
,
"barcodeSetting"
,
"taskLog"
,
"inOutData"
,
//报表->出入库
"inventory"
,
//报表->库存
"bunker"
,
//设备管理
"storagePos"
,
//库位管理
//"sysSetting", //系统设置
"peoples"
,
//用户管理
"role"
//角色管理
};
}
Map
<
String
,
Menu
>
allMenus
=
getAllMenuMap
();
Set
<
String
>
showIdSet
=
showMenu
(
allMenus
,
menuListToShow
);
Set
<
String
>
hideIdSet
=
hideMenu
(
allMenus
,
menuListToHide
);
if
(!
showIdSet
.
isEmpty
()
||
!
hideIdSet
.
isEmpty
()){
List
<
Role
>
roles
=
roleManager
.
findByQuery
(
new
Query
(
Criteria
.
where
(
"name"
).
is
(
"admin"
)));
Role
roleAdmin
=
roles
.
get
(
0
);
Set
<
String
>
roleMenus
=
roleAdmin
.
getMenus
();
roleMenus
.
addAll
(
showIdSet
);
roleMenus
.
removeAll
(
hideIdSet
);
roleManager
.
saveRole
(
roleAdmin
);
}
}
/**
* 循环添加菜单ID(父级菜单也会添加)
*/
private
void
addToMenuIdSet
(
Set
<
String
>
menuIdSet
,
Menu
menu
){
menuIdSet
.
add
(
menu
.
getId
());
if
(
menu
.
getParentMenu
()
!=
null
){
addToMenuIdSet
(
menuIdSet
,
menu
.
getParentMenu
());
}
}
/**
* 展示菜单
*/
private
Set
<
String
>
showMenu
(
Map
<
String
,
Menu
>
allMenu
,
String
[]
menuListToShow
){
Set
<
String
>
showIdSet
=
new
HashSet
<>();
for
(
String
showPath
:
menuListToShow
)
{
Menu
showMenu
=
allMenu
.
get
(
showPath
);
if
(
showMenu
!=
null
){
showMenu
=
createMenu
(
showMenu
);
log
.
info
(
"展示菜单:"
+
showMenu
.
getPath
());
addToMenuIdSet
(
showIdSet
,
showMenu
);
}
else
{
log
.
error
(
"展示菜单:"
+
showPath
+
"不存在"
);
}
}
return
showIdSet
;
}
/**
* 隐藏菜单
*/
private
Set
<
String
>
hideMenu
(
Map
<
String
,
Menu
>
allMenu
,
String
[]
menuListToHide
){
Set
<
String
>
hideIdSet
=
new
HashSet
<>();
for
(
String
showPath
:
menuListToHide
)
{
Menu
hideMenu
=
allMenu
.
get
(
showPath
);
if
(
hideMenu
!=
null
){
hideMenu
=
menuManager
.
findByPath
(
hideMenu
.
getPath
());
if
(
hideMenu
!=
null
){
hideMenu
.
setHidden
(
true
);
menuManager
.
saveMenu
(
hideMenu
);
log
.
info
(
"隐藏菜单:"
+
hideMenu
.
getPath
());
addToMenuIdSet
(
hideIdSet
,
hideMenu
);
}
}
else
{
log
.
error
(
"菜单:"
+
showPath
+
"不存在"
);
}
}
return
menu
IdSet
;
return
hide
IdSet
;
}
}
src/main/java/com/neotel/smfcore/common/utils/PermissionInitUtil.java
查看文件 @
2f44da7
...
...
@@ -169,6 +169,10 @@ public class PermissionInitUtil {
if
(
targetStr
.
contains
(
"@el.check"
))
{
int
endIndex
=
targetStr
.
length
()
-
2
;
if
(
endIndex
<=
11
){
log
.
error
(
"path="
+
path
+
"的权限定义"
+
targetStr
+
"异常,忽略"
);
continue
;
}
targetStr
=
targetStr
.
substring
(
11
,
endIndex
);
String
[]
targetArray
=
targetStr
.
split
(
"','"
);
tList
=
Lists
.
newArrayList
(
targetArray
);
...
...
@@ -188,7 +192,7 @@ public class PermissionInitUtil {
resMap
.
put
(
path
,
tbPer
);
}
catch
(
Exception
ex
)
{
log
.
error
(
"解析 path="
+
path
+
" 出错: "
+
ex
.
toString
()
);
log
.
error
(
"解析 path="
+
path
+
" 出错: "
,
ex
);
}
}
...
...
src/main/java/com/neotel/smfcore/core/language/util/LanguageMsgService.java
查看文件 @
2f44da7
...
...
@@ -117,8 +117,7 @@ public class LanguageMsgService {
List
<
String
>
list
=
getAllLanList
();
list
.
add
(
""
);
for
(
String
lan
:
list
)
{
for
(
String
lan
:
list
)
{
String
[]
array
=
lan
.
split
(
"-"
);
Locale
locale
=
null
;
if
(
array
.
length
==
2
)
{
...
...
src/main/java/com/neotel/smfcore/security/service/manager/IMenuManager.java
查看文件 @
2f44da7
...
...
@@ -84,4 +84,6 @@ public interface IMenuManager extends IBaseManager<Menu> {
void
delete
(
Set
<
Menu
>
menuSet
)
throws
ValidateException
;
Menu
saveMenu
(
Menu
menu
)
throws
ValidateException
;
Menu
findByPath
(
String
path
);
}
src/main/java/com/neotel/smfcore/security/service/manager/impl/MenuManagerImpl.java
查看文件 @
2f44da7
...
...
@@ -7,7 +7,6 @@ import com.neotel.smfcore.common.exception.ValidateException;
import
com.neotel.smfcore.common.utils.FileUtil
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
com.neotel.smfcore.security.rest.bean.dto.MenuDto
;
import
com.neotel.smfcore.security.rest.bean.vo.MenuMetaVo
;
import
com.neotel.smfcore.security.rest.bean.vo.MenuVo
;
import
com.neotel.smfcore.security.service.dao.IMenuDao
;
...
...
@@ -18,7 +17,6 @@ import com.neotel.smfcore.security.service.po.Menu;
import
com.neotel.smfcore.security.service.po.Role
;
import
com.neotel.smfcore.security.service.po.User
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.util.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
...
...
@@ -326,6 +324,11 @@ public class MenuManagerImpl implements IMenuManager {
return
menuDao
.
save
(
menu
);
}
@Override
public
Menu
findByPath
(
String
path
){
return
menuDao
.
findOneByCondition
(
new
String
[]{
"path"
},
new
String
[]{
path
});
}
// /**
// * 清理缓存
// * @param id 菜单ID
...
...
src/main/java/com/neotel/smfcore/security/service/po/Menu.java
查看文件 @
2f44da7
...
...
@@ -19,6 +19,7 @@ import cn.hutool.core.util.ObjectUtil;
import
com.neotel.smfcore.common.base.BasePo
;
import
com.neotel.smfcore.core.language.util.MessageUtils
;
import
lombok.*
;
import
org.springframework.data.annotation.Transient
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.io.Serializable
;
...
...
@@ -98,6 +99,12 @@ public class Menu extends BasePo implements Serializable {
*/
private
String
titleKey
;
/**
* 父级菜单,主要用于初始化菜单,不存数据库
*/
@Transient
private
Menu
parentMenu
;
public
Boolean
getHasChildren
()
{
if
(
subCount
==
0
){
return
false
;
...
...
@@ -159,16 +166,16 @@ public class Menu extends BasePo implements Serializable {
* 此方法用于构建权限菜单,type=2
*/
public
static
Menu
CreatePerMenu
(
final
String
permission
,
final
String
title
,
final
String
pid
)
{
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
2
,
permission
,
title
,
999
,
""
,
""
,
pid
,
0
,
false
,
false
,
false
,
""
,
""
,
""
);
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
2
,
permission
,
title
,
999
,
""
,
""
,
pid
,
0
,
false
,
false
,
false
,
""
,
""
,
""
,
null
);
return
menu
;
}
/**
* 此方法用户创建只用于显示的一级菜单,type=0
*/
public
static
Menu
CreatePMenu
(
final
String
title
,
final
Integer
menuSort
,
final
String
path
,
final
Integer
subCount
,
final
String
icon
)
{
public
static
Menu
CreatePMenu
(
final
String
title
,
final
Integer
menuSort
,
final
String
path
,
final
Integer
subCount
,
final
String
icon
,
Menu
parentMenu
)
{
String
titleKey
=
path
;
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
0
,
""
,
title
,
menuSort
,
path
,
""
,
""
,
subCount
,
false
,
false
,
false
,
title
,
icon
,
titleKey
);
Menu
menu
=
new
Menu
(
new
ArrayList
<
Menu
>(),
0
,
""
,
title
,
menuSort
,
path
,
""
,
""
,
subCount
,
false
,
false
,
false
,
title
,
icon
,
titleKey
,
parentMenu
);
return
menu
;
}
...
...
src/main/resources/config/application.yml
查看文件 @
2f44da7
...
...
@@ -34,7 +34,7 @@ spring:
mongodb
:
host
:
localhost
# 主机地址
port
:
27017
# 端口
database
:
smf
# 数据库
database
:
smf
-test
# 数据库
messages
:
encoding
:
utf-8
main
:
...
...
@@ -47,4 +47,8 @@ rsa:
app
:
version
:
'
1.25.0517'
type
:
"
"
\ No newline at end of file
type
:
"
"
menu
:
show
:
hide
:
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论