Commit 70d19f00 LN

调试修改

1 个父辈 18d34429
......@@ -37,65 +37,14 @@ public class DataInitManager {
@PostConstruct
public void DataInit() {
try {
log.info("初始化环境...");
//查询admin的用户是否存在
String userName = Constants.SUPER_USERNAME;
User admin = userManager.findByUserName(userName);
if (admin == null) {
Menu menu1 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "menu");
Menu menu2 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "工单", 2, "workOrder", "neolight/workOrder/index", "", 0, "menu");
Menu menu3 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "查找出库", 3, "singleOuput", "neolight/singleOuput/index", "", 0, "menu");
Menu menu4 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "分组管理", 4, "groupManager", "neolight/groupManager/index", "", 0, "menu");
// Menu menu4 = new Menu(new ArrayList<Menu>(), 0, "menu:list", "角色管理", 4, "menu", "user/roleSearch", "", 0, false, false, false, "角色管理", "menu");
List<Menu> menus=new ArrayList<Menu>();
menus.add(menu1);
menus.add(menu2);
menus.add(menu3);
menus.add(menu4);
Set<String> menuIdSet = new HashSet<String>() ;
for (Menu menu: menus ) {
menu=menuManager.save(menu);
// log.info("创建默认菜单:" + menu.toString());
// Menus.add(menu.getId());
}
Menu menuUser = new Menu(new ArrayList<Menu>(), 1, "user:list", "用户管理", 11, "peoples", "system/user/index", "", 3, "peoples");
menuUser=menuManager.save(menuUser);
Menu menuUser1 =menuManager.save(new Menu( "user:edit", "用户编辑", 12, menuUser.getId())) ;
Menu menuUser2 = menuManager.save(new Menu( "user:del", "用户删除", 13, menuUser.getId()));
Menu menuUser3 =menuManager.save( new Menu( "user:add", "用户新增", 13, menuUser.getId()));
menus.add(menuUser);
menus.add(menuUser1);
menus.add(menuUser2);
menus.add(menuUser3);
Menu menuRole = new Menu(new ArrayList<Menu>(), 1, "role:list", "角色管理", 21, "role", "system/role/index", "", 3, "role");
menuUser=menuManager.save(menuRole);
Menu menuRole1 =menuManager.save(new Menu( "role:edit", "角色编辑", 22, menuRole.getId())) ;
Menu menuRole2 = menuManager.save(new Menu( "role:del", "角色删除", 23, menuRole.getId()));
Menu menuRole3 =menuManager.save( new Menu( "role:add", "角色新增", 23, menuRole.getId()));
menus.add(menuRole);
menus.add(menuRole1);
menus.add(menuRole2);
menus.add(menuRole3);
Menu menuMenu = new Menu(new ArrayList<Menu>(), 1, "menu:list", "菜单管理", 31, "menu", "system/menu/index", "", 3, "menu");
menuMenu=menuManager.save(menuMenu);
Menu menuMenu1 =menuManager.save(new Menu( "menu:edit", "菜单编辑", 32, menuMenu.getId())) ;
Menu menuMenu2 = menuManager.save(new Menu( "menu:del", "菜单删除", 33, menuMenu.getId()));
Menu menuMenu3 =menuManager.save( new Menu( "menu:add", "菜单新增", 33, menuMenu.getId()));
menus.add(menuMenu);
menus.add(menuMenu1);
menus.add(menuMenu2);
menus.add(menuMenu3);
for (Menu menu: menus ) {
log.info("创建默认菜单:" + menu.toString());
menuIdSet.add(menu.getId());
}
Set<String> menuIdSet = MenuInitOld() ;
Group group=new Group("未分组");
group=groupManager.save(group);
......@@ -122,4 +71,169 @@ public class DataInitManager {
}
private Set<String> MenuInitOld(){
Set<String> menuIdSet = new HashSet<String>() ;
List<Menu> menus=new ArrayList<Menu>();
Menu menu1 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "menu");
Menu menu2 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "工单", 2, "workOrder", "neolight/workOrder/index", "", 0, "menu");
Menu menu3 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "查找出库", 3, "singleOuput", "neolight/singleOuput/index", "", 0, "menu");
Menu menu4 = new Menu(new ArrayList<Menu>(), 1, "menu:list", "分组管理", 4, "groupManager", "neolight/groupManager/index", "", 0, "menu");
// Menu menu4 = new Menu(new ArrayList<Menu>(), 0, "menu:list", "角色管理", 4, "menu", "user/roleSearch", "", 0, false, false, false, "角色管理", "menu");
menus.add(menuManager.save(menu1));
menus.add(menuManager.save(menu2));
menus.add(menuManager.save(menu3));
menus.add(menuManager.save(menu4));
Menu menuUser = new Menu(new ArrayList<Menu>(), 1, "user:list", "用户管理", 11, "peoples", "system/user/index", "", 0, "peoples");
menuUser=menuManager.save(menuUser);
Menu menuUser1 =menuManager.save(new Menu( "user:edit", "用户编辑", 12, menuUser.getId())) ;
Menu menuUser2 = menuManager.save(new Menu( "user:del", "用户删除", 13, menuUser.getId()));
Menu menuUser3 =menuManager.save( new Menu( "user:add", "用户新增", 13, menuUser.getId()));
menus.add(menuUser);
menus.add(menuUser1);
menus.add(menuUser2);
menus.add(menuUser3);
Menu menuRole = new Menu(new ArrayList<Menu>(), 1, "role:list", "角色管理", 21, "role", "system/role/index", "", 0, "role");
menuUser=menuManager.save(menuRole);
Menu menuRole1 =menuManager.save(new Menu( "role:edit", "角色编辑", 22, menuRole.getId())) ;
Menu menuRole2 = menuManager.save(new Menu( "role:del", "角色删除", 23, menuRole.getId()));
Menu menuRole3 =menuManager.save( new Menu( "role:add", "角色新增", 23, menuRole.getId()));
menus.add(menuRole);
menus.add(menuRole1);
menus.add(menuRole2);
menus.add(menuRole3);
Menu menuMenu = new Menu(new ArrayList<Menu>(), 1, "menu:list", "菜单管理", 31, "menu", "system/menu/index", "", 0, "menu");
menuMenu=menuManager.save(menuMenu);
Menu menuMenu1 =menuManager.save(new Menu( "menu:edit", "菜单编辑", 32, menuMenu.getId())) ;
Menu menuMenu2 = menuManager.save(new Menu( "menu:del", "菜单删除", 33, menuMenu.getId()));
Menu menuMenu3 =menuManager.save( new Menu( "menu:add", "菜单新增", 33, menuMenu.getId()));
menus.add(menuMenu);
menus.add(menuMenu1);
menus.add(menuMenu2);
menus.add(menuMenu3);
Menu menuLog = new Menu(new ArrayList<Menu>(), 1, "taskLog:list", "出库日志", 41, "taskLog", "neolight/taskLog/index", "", 0, "database");
Menu menuStorage = new Menu(new ArrayList<Menu>(), 1, "storagePos:list", "库位管理", 51, "storagePos", "storagePos/storagePos/index", "", 0, "tree-table");
Menu menuStoragePos = new Menu(new ArrayList<Menu>(), 1, "storage:list", "料仓管理", 61, "bunker", "storage/storage/index", "", 0, "database");
Menu menucom = new Menu(new ArrayList<Menu>(), 1, "component:list", "元器件管理", 71, "componentParts", "parts/component/index", "", 0, "server");
Menu menubarcode = new Menu(new ArrayList<Menu>(), 1, "barcode:list", "条码管理", 81, "barcode", "barcode/barcode/index", "", 0, "menu");
menus.add( menuManager.save(menuLog));
menus.add( menuManager.save(menuStorage));
menus.add( menuManager.save(menuStoragePos));
menus.add( menuManager.save(menucom));
menus.add( menuManager.save(menubarcode));
for (Menu menu: menus ) {
log.info("创建默认菜单:" + menu.toString());
menuIdSet.add(menu.getId());
}
return menuIdSet;
}
private int sortValue=0;
private List<Menu> createMenus(Menu pMenu,Menu... subMenus) {
List<Menu> list = new ArrayList<Menu>();
sortValue++;
pMenu.setSubCount(subMenus.length);
pMenu.setMenuSort(sortValue * 10);
pMenu = menuManager.saveMenu(pMenu);
list.add(pMenu);
list.addAll(createSubPerMenus(pMenu));
if (subMenus.length > 0) {
int i = 0;
for (Menu subm : subMenus
) {
i++;
int subSort = sortValue * 10 + i;
subm.setSubCount(subSort);
subm.setPid(pMenu.getId());
list.add(subm);
list.addAll(createSubPerMenus(subm));
}
}
return list;
}
private List<Menu> createSubPerMenus(Menu menu) {
List<Menu> list = new ArrayList<>();
//如果是list结尾的,默认增加其他的权限菜单
Map<String, String[]> defaultMenus = new HashMap<>();
defaultMenus.put("menu", new String[]{"menu:edit", "menu:del", "menu:add"});
defaultMenus.put("user",new String[]{});
defaultMenus.put("role",new String[]{});
String per = menu.getPermission().replace(":list", "");
String menuName = menu.getTitle().replace("管理", "");
if (!defaultMenus.containsKey(per)) {
return list;
}
String[] subPers = defaultMenus.get(per);
if (subPers.length <= 0) {
subPers = new String[]{per + ":edit", per + ":del", per + ":add"};
}
for (String subPer :
subPers) {
Menu subperMenu = menuManager.save(Menu.CreatePerMenu(subPer, menuName + "_" + subPer, menu.getId()));
list.add(subperMenu);
}
return list;
}
private Set<String> MenuInitNew(){
Set<String> menuIdSet = new HashSet<String>() ;
List<Menu> menus=new ArrayList<Menu>();
//料架分组
Menu menuShelf = new Menu(new ArrayList<Menu>(), 1, "menu:list", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "menu");
menus.addAll(createMenus(menuShelf ));
//出库:工单,查找出库
Menu poutOut=Menu.CreatePMenu("工单",20,"",2,"menu");
Menu menuOrder = new Menu(new ArrayList<Menu>(), 21, "menu:list", "工单", 2, "workOrder", "neolight/workOrder/index", "", 0, "menu");
Menu menuOut = new Menu(new ArrayList<Menu>(), 22, "menu:list", "查找出库", 3, "singleOuput", "neolight/singleOuput/index", "", 0, "menu");
menus.addAll(createMenus( poutOut,menuOrder,menuOut));
//设置:料仓管理,菜单管理
Menu poutSet=Menu.CreatePMenu("设置",30,"",2,"menu");
Menu menuStorage = new Menu(new ArrayList<Menu>(), 31, "storage:list", "料仓管理", 61, "bunker", "storage/storage/index", "", 0, "database");
Menu menuStoragePos = new Menu(new ArrayList<Menu>(), 32, "storagePos:list", "库位管理", 51, "storagePos", "storagePos/storagePos/index", "", 0, "tree-table");
Menu menuMenu = new Menu(new ArrayList<Menu>(), 33, "menu:list", "菜单管理", 31, "menu", "system/menu/index", "", 0, "menu");
menus.addAll(createMenus( poutSet,menuStorage,menuStoragePos,menuMenu));
//物料管理:元器件管理,条形码管理
Menu pMenuWl=Menu.CreatePMenu("物料管理",30,"",2,"menu");
Menu menucom = new Menu(new ArrayList<Menu>(), 1, "component:list", "元器件", 71, "componentParts", "parts/component/index", "", 0, "server");
Menu menubarcode = new Menu(new ArrayList<Menu>(), 1, "barcode:list", "条形码", 81, "barcode", "barcode/barcode/index", "", 0, "menu");
menus.addAll(createMenus( pMenuWl,menucom,menubarcode));
//日志管理:物料日志
Menu pMenuLog=Menu.CreatePMenu("日志管理",30,"",2,"menu");
Menu menuLog = new Menu(new ArrayList<Menu>(), 1, "taskLog:list", "物料日志", 41, "taskLog", "neolight/taskLog/index", "", 0, "database");
menus.addAll(createMenus( pMenuLog,menuLog));
//用户管理:用户管理,角色管理
Menu pMenuUser=Menu.CreatePMenu("用户管理",30,"",2,"menu");
Menu menuUser = new Menu(new ArrayList<Menu>(), 1, "user:list", "用户管理", 11, "peoples", "system/user/index", "", 0, "peoples");
Menu menuRole = new Menu(new ArrayList<Menu>(), 1, "role:list", "角色管理", 21, "role", "system/role/index", "", 0, "role");
menus.addAll(createMenus( pMenuUser,menuUser,menuRole));
for (Menu menu: menus ) {
log.info("创建默认菜单:" + menu.toString());
menuIdSet.add(menu.getId());
}
return menuIdSet;
}
}
......@@ -16,6 +16,8 @@ import java.util.List;
@Getter
@Setter
public class BarcodeDto implements Serializable {
@ApiModelProperty(value = "ID")
private String id;
@ApiModelProperty("条码编号")
private String barcode;
......
......@@ -9,6 +9,8 @@ import java.io.Serializable;
@Getter
@Setter
public class ComponentDto implements Serializable {
@ApiModelProperty(value = "ID")
private String id;
@ApiModelProperty("产品类型:0=元器件,1=锡膏,2=PCB,3=其他,4=夹具")
private int type = COMPONENT_TYPE.COMPONENT;
......@@ -89,14 +91,17 @@ public class ComponentDto implements Serializable {
@ApiModelProperty("供应商编号")
private String providerNumber;
@ApiModelProperty("物料数量")
private int amount;
@ApiModelProperty("报警值,与贴片机连机时使用,值小于1时为初始数量amount百分比,大于等于1时为数量,小于此值时会根据贴片机信息自动出料")
private float alarmValue = 0.5f;
@ApiModelProperty("宽度")
private int plateSize;
@ApiModelProperty("高度")
private int height;
@ApiModelProperty("单台料仓可存储此种物料的最大数量")
......
......@@ -19,6 +19,8 @@ import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.bean.FileProperties;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.po.Group;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......@@ -58,6 +60,8 @@ public class StorageController {
private final FileProperties properties;
@Autowired
private final IStoragePosManager storagePosManager;
@Autowired
private final IGroupManager groupManager;
@Autowired
private final DataCache dataCache;
......@@ -70,6 +74,16 @@ public class StorageController {
Query query= QueryHelp.getQuery(criteria);
PageData<Storage> pages=storageManager.findByPage(query,pageable);
List<StorageDto> StorageDtos=storageMapper.toDto(pages.getContent());
for (int i=0;i<StorageDtos.size();i++){
String groupId="1";
if(StorageDtos.get(i).getGroupId()!=null&&(!StorageDtos.get(i).getGroupId().isEmpty())){
groupId=StorageDtos.get(i).getGroupId();
}
Group group=groupManager.get(groupId);
if(group!=null){
StorageDtos.get(i).setGroupName(group.getGroupName());
}
}
return new PageData(StorageDtos,pages.getTotalElements());
}
@ApiOperation("新增料仓")
......@@ -166,6 +180,9 @@ public class StorageController {
if(storage.getSourcePath()==null){
storage.setSourcePath("");
}
if(storage.getGroupId()==null|| storage.getGroupId().isEmpty()){
storage.setGroupId("1");
}
storage= storageDao.save(storage);
......
......@@ -52,4 +52,7 @@ public class StorageDto implements Serializable {
@ApiModelProperty("分组")
private String groupId = "";
@ApiModelProperty("组名称")
private String groupName = "";
}
......@@ -15,11 +15,17 @@
*/
package com.neotel.smfcore.security.rest;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.csv.CsvReader;
import com.neotel.smfcore.common.exception.BadRequestException;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.security.bean.FileProperties;
import com.neotel.smfcore.security.bean.RsaProperties;
import com.neotel.smfcore.security.rest.bean.dto.RoleSmallDto;
import com.neotel.smfcore.security.rest.bean.dto.UserDto;
......@@ -28,6 +34,7 @@ import com.neotel.smfcore.security.rest.bean.query.UserQueryCriteria;
import com.neotel.smfcore.security.rest.bean.vo.UserPassVo;
import com.neotel.smfcore.security.service.manager.IRoleManager;
import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.manager.impl.UserManagerImpl;
import com.neotel.smfcore.security.service.po.Role;
import com.neotel.smfcore.security.service.po.User;
import io.swagger.annotations.Api;
......@@ -43,8 +50,10 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.*;
......@@ -67,6 +76,8 @@ public class UserController {
@Autowired
private IRoleManager roleManager;
@Autowired
private final FileProperties properties;
@ApiOperation("导出用户数据")
@GetMapping(value = "/download")
......@@ -219,5 +230,88 @@ public class UserController {
userManager.updateGroups(resources);
return new ResponseEntity<>(HttpStatus.OK);
}
@ApiOperation("上传用户列表")
@PostMapping(value = "/upload")
public ResultBean upload( @RequestParam MultipartFile uploadFile) throws Exception {
// 验证文件上传的格式
String image = "csv";
String fileType = FileUtil.getExtensionName(uploadFile.getOriginalFilename());
if(fileType != null && !image.contains(fileType)){
throw new BadRequestException("文件格式错误!, 仅支持 " + image +" 格式");
}
File folder = new File(properties.getPath(),"user");
File file = FileUtil.upload(uploadFile, folder.getAbsolutePath());
String resultMsg = handleUserUpload(file.getAbsolutePath());
return ResultBean.newOkResult(resultMsg);
}
private int getCsvIndex(CsvReader csvReader,String titleName,String titleNameEn){
int index = csvReader.getIndex(titleName,titleNameEn);
if(index == -1){
log.info("未包含【"+titleName+"】或【"+titleNameEn+"】列");
throw new ValidateException("必须包含["+titleNameEn+"]列");
}
return index;
}
protected String handleUserUpload(String fileURL ) throws Exception
{
log.info("开始更新用户列表");
CsvReader csvRead = new CsvReader(fileURL);
csvRead.setSkipEmptyRecords(true);//忽略空行
csvRead.setTrimWhitespace(true);//去除空格
csvRead.readHeaders();
int idIndex = getCsvIndex(csvRead,"用户ID","ID");
int usernameIndex = getCsvIndex(csvRead,"用户名","UserName");
int codeIndex = getCsvIndex(csvRead,"启用码","CheckCode");
int row = 1;
int newRowCount = 0;
int updateRowCount = 0;
String msg="";
while(csvRead.readRecord()){
row++;
String[] lineValues = csvRead.getValues();
String id = lineValues[idIndex];
String checkCode = lineValues[codeIndex];
String username=lineValues[usernameIndex];
if(checkCode.isEmpty() || username.isEmpty() || id.isEmpty()){
log.warn("第"+row+"行中有空白内容,此行忽略");
continue;
}
User user= userManager.get(id);
if(user!=null){
//判断是否已启用
if(user.getEnabled()){
//判断验证码是否正确
String code=Md5Utls.getMd5(id,user.getCreateDate());
if(code.equals(user.getCheckCode())){
//此用户已验证过,不需要在验证
}
else if(code.equals(checkCode)){
user.setCheckCode(checkCode);
user.setEnabled(true);
userManager.save(user);
msg+="["+user.getUsername()+"]";
}
}else{
String code=Md5Utls.getMd5(id,user.getCreateDate());
if(code.equals(checkCode)){
user.setCheckCode(checkCode);
user.setEnabled(true);
userManager.save(user);
msg+="["+user.getUsername()+"]";
}
}
}
}
log.info("上传用户,启用一下用户:"+msg);
return msg;
}
}
......@@ -59,6 +59,7 @@ public class GroupManagerImpl implements IGroupManager {
Map<String,Object> map = new LinkedHashMap<>();
map.put("组ID", group.getId());
map.put("组名称", group.getGroupName());
map.put("创建时间", group.getCreateDate());
list.add(map);
}
FileUtil.downloadExcel(list, response);
......
......@@ -148,11 +148,12 @@ public class UserManagerImpl implements IUserManager {
Map<String, Object> map = new LinkedHashMap<>();
map.put("用户ID", user.getId());
map.put("用户名", user.getUsername());
map.put("角色", user.getRoleId());
// map.put("角色", user.getRoleId());
map.put("邮箱", user.getEmail());
map.put("状态", user.getEnabled() ? "启用" : "禁用");
map.put("语言",user.getLanguage());
// map.put("语言",user.getLanguage());
map.put("创建日期", user.getCreateDate());
map.put("启用码", "");
list.add(map);
}
FileUtil.downloadExcel(list, response);
......
......@@ -135,16 +135,11 @@ public class Menu extends BasePo implements Serializable {
this.iFrame = false;
this.cache = false;
this.hidden = false;
this.componentName = title;
this.componentName = "";
this.icon = icon;
}/**
* 此方法用于构建权限菜单,type=2
* @param permission
* @param title
* @param menuSort
* @param pid
*/
public Menu( final String permission, final String title, final Integer menuSort, final String pid ) {
}
public Menu ( final String permission, final String title, final Integer menuSort, final String pid ) {
this.children = new ArrayList<Menu>();
this.type = 2;
this.permission = permission;
......@@ -160,4 +155,19 @@ public class Menu extends BasePo implements Serializable {
this.componentName = title;
this.icon = "";
}
/**
* 此方法用于构建权限菜单,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,"","");
return menu;
}
/**
* 此方法用户创建只用于显示的一级菜单,type=0
*/
public static Menu CreatePMenu( final String title, final Integer menuSort, final String path, final Integer subCount, final String icon) {
Menu menu = new Menu(new ArrayList<Menu>(), 0, "", title, menuSort, path, "", "", subCount, false, false, false, title, icon);
return menu;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!