Commit cd08bb20 LN

接口调试修改。

1 个父辈 05193f0c
......@@ -20,6 +20,9 @@
*/
package com.neotel.smfcore.common.csv;
import com.neotel.smfcore.common.exception.ValidateException;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.nio.charset.Charset;
import java.text.NumberFormat;
......@@ -29,6 +32,7 @@ import java.util.HashMap;
* A stream based parser for parsing delimited text data from a file or a
* stream.
*/
@Slf4j
public class CsvReader {
private Reader inputStream = null;
......@@ -233,6 +237,21 @@ public class CsvReader {
}
/**
* 获取指定列所在的索引
* @param titleName
* @param titleNameEn
* @return
*/
public int getCsvIndex(String titleName,String titleNameEn){
int index = getIndex(titleName,titleNameEn);
if(index == -1){
log.info("未包含【"+titleName+"】或【"+titleNameEn+"】列");
// throw new ValidateException("必须包含["+titleNameEn+"]列");
throw new ValidateException("smfcode.columnNotExist","必须包含[{0}列",new String[]{titleNameEn});
}
return index;
}
/**
* Gets whether leading and trailing whitespace characters are being trimmed
* from non-textqualified column data. Default is true.
*
......
......@@ -2,6 +2,9 @@ package com.neotel.smfcore.common.init;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.UserCodeUtil;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.manager.IMenuManager;
import com.neotel.smfcore.security.service.manager.IRoleManager;
......@@ -21,6 +24,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.jws.soap.SOAPBinding;
import java.util.*;
import java.util.concurrent.TimeUnit;
@Slf4j
@Component
......@@ -34,6 +38,11 @@ public class DataInitManager {
IMenuManager menuManager;
@Autowired
IGroupManager groupManager;
@Autowired
TaskService taskService;
@Autowired
IDataLogManager dataLogManager;
@PostConstruct
public void DataInit() {
......@@ -44,6 +53,7 @@ public class DataInitManager {
User admin = userManager.findByUserName(userName);
if (admin == null) {
log.info("开始创建默认菜单...");
Set<String> menuIdSet = MenuInitNew() ;
Group group=new Group("未分组");
......@@ -60,81 +70,35 @@ public class DataInitManager {
userManager.save(admin);
log.info("创建默认用户:" + admin.toString());
log.info("创建默认菜单完成...");
} else {
log.info("初始化环境完成...");
}
initTask();
} catch (Exception exception) {
log.error("初始化环境出错..." + exception.toString());
}
}
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());
private void initTask() {
log.info("开始加载未完成的任务...");
List<DataLog> unExecuteTasks = dataLogManager.findUnFinishedTasks();
for (DataLog unExecuteTask : unExecuteTasks) {
if (unExecuteTask.isExecuting() || unExecuteTask.isWait()) {
try {
taskService.addTaskToExecute(unExecuteTask);
}catch (Exception e){
log.error("初始化任务["+unExecuteTask+"]出错:"+e);
}
}
}
return menuIdSet;
log.info("加载未完成的任务完成,共[" + unExecuteTasks.size() + "]条数据...");
}
private int sortValue=0;
private List<Menu> createMenus(Menu pMenu,Menu... subMenus) {
......
......@@ -43,10 +43,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.*;
@Slf4j
......@@ -111,24 +108,25 @@ public class BoxKanbanController {
String groupId = criteria.getGroupId();
List<String> cidList = getCidsByGroupId(groupId,true);
query.addCriteria(Criteria.where("cid").in(cidList));
PageData<DataLog> dataLogPageData=dataLogManager.findByPage(query,pageable);
List<BoxTaskDto> boxTaskDtos=boxTaskMapper.toDto(dataLogPageData.getContent());
//正常
if(criteria.getStatus()==1){
if(criteria.getTaskStatus()==1){
Date lastUpdateTime=new Date((new Date().getTime())-10 * 60 * 1000);
query.addCriteria(Criteria.where("updateDate").gt(lastUpdateTime).and("status").is(OP_STATUS.EXECUTING));
query.addCriteria(Criteria.where("updateDate").gt(lastUpdateTime).and("status").is(OP_STATUS.EXECUTING.name()));
}//异常
else if(criteria.getStatus()==2){
else if(criteria.getTaskStatus()==2){
Date lastUpdateTime=new Date((new Date().getTime())-10 * 60 * 1000);
query.addCriteria(Criteria.where("updateDate").lte(lastUpdateTime).and("status").is(OP_STATUS.EXECUTING));
}else{
List<String> sList=new ArrayList<>();
sList.add(OP_STATUS.WAIT.toString());
sList.add(OP_STATUS.EXECUTING.toString());
query.addCriteria(Criteria.where("status").in(sList));
query.addCriteria(Criteria.where("updateDate").lte(lastUpdateTime).and("status").in(OP_STATUS.EXECUTING.name(),OP_STATUS.WAIT.name()));
}else {
//只查找近12个小时未完成的任务
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, -12);
query.addCriteria(Criteria.where("createDate").gte(calendar.getTime()));
query.addCriteria(Criteria.where("status").nin(OP_STATUS.CANCEL.name(), OP_STATUS.FINISHED.name()));
}
PageData<DataLog> dataLogPageData=dataLogManager.findByPage(query,pageable);
List<BoxTaskDto> boxTaskDtos=boxTaskMapper.toDto(dataLogPageData.getContent());
return new PageData(boxTaskDtos, boxTaskDtos.size());
}
......@@ -157,13 +155,18 @@ public class BoxKanbanController {
int allCount = allTasks.size();
int abnormal = 0;
int normal = 0;
int allcount=0;
for (DataLog data : allTasks) {
if (data.isFinished() || data.isCancel()) {
continue;
}
//超过10分钟未更新为异常
if (data.isAbnormal()) {
abnormal++;
} else if (data.getStatus().equals(OP_STATUS.EXECUTING)) {
if ((!data.isAbnormal()) && data.getStatus().equals(OP_STATUS.EXECUTING)) {
normal++;
} else if (data.isAbnormal()) {
abnormal++;
}
allcount++;
}
BoxKanbanDto kanbanDto = new BoxKanbanDto(allCount, normal, abnormal, new ArrayList<>());
return kanbanDto;
......
......@@ -8,10 +8,13 @@ import java.util.List;
@Data
public class BoxTaskDto {
@ApiModelProperty("ID")
private String id;
@ApiModelProperty("是否是单盘出库(联电指出库项目,默认为false即默认批量出库)")
private boolean singleOut = false;
@ApiModelProperty("所属料仓")
@ApiModelProperty("料仓名称")
private String storageName;
@ApiModelProperty(value="料仓 cid")
......@@ -20,10 +23,10 @@ public class BoxTaskDto {
@ApiModelProperty("料仓 ID")
private String storageId;
@ApiModelProperty("料仓 ID")
@ApiModelProperty("库位号ID")
private String posId;
@ApiModelProperty("仓位名称")
@ApiModelProperty("库位号")
private String posName;
@ApiModelProperty("二维码(Reel ID)")
......@@ -32,79 +35,60 @@ public class BoxTaskDto {
@ApiModelProperty("物料编号")
private String partNumber;
/**
*数量(从 barCode 中读取)
*/
@ApiModelProperty("物料编号")
@ApiModelProperty("数量")
private int num;
/**
* 类型:入库OP.PUT_IN,出库OP.CHECKOUT
*/
@ApiModelProperty("出入库类型")
private int type;
/**
* 状态:OP_STATUS
*/
private String status;
@ApiModelProperty("状态:OP_STATUS")
private String taskStatus;
/**
* 指定批次Id
*/
public String getTaskStatus(){return status;}
@ApiModelProperty("指定批次Id")
private String batchId;
/**
* 批次显示内容
*/
@ApiModelProperty("批次显示内容")
private String batchInfo;
/**
* 指令来源:站位列表 指定订单工单 MES
*/
@ApiModelProperty("指令来源:站位列表 指定订单工单 MES")
private String sourceType;
/**
* 来源 id,
*/
@ApiModelProperty("来源 id")
private String sourceId;
/**
* 来源名称
*/
@ApiModelProperty("来源名称")
private String sourceName;
/**
* 子来源 ID(单个站位)
*/
@ApiModelProperty("子来源 ID(单个站位)")
private String subSourceId;
/**
* 子来源名称
*/
@ApiModelProperty("子来源名称")
private String subSourceInfo;
/**
* 创建人
*/
@ApiModelProperty("创建人")
private String creator;
/**
* 操作人
*/
@ApiModelProperty("操作人")
private String operator;
/**
* 关联条码,夹具时关联相关的物料,用于入库完成时插入相关物料
*/
@ApiModelProperty("关联条码,夹具时关联相关的物料,用于入库完成时插入相关物料")
private List<String> relationCodes;
private String memo;
/**
* 搅拌时间(锡膏搅拌任务使用)
*/
@ApiModelProperty("搅拌时间(锡膏搅拌任务使用)")
private int mixTime;
/**
* 亮灯料架颜色
*/
@ApiModelProperty("亮灯料架颜色")
private String lightColor = "";
}
......@@ -45,7 +45,7 @@ public class BoxTaskQueryCriter {
private String sourceName;
@ApiModelProperty("任务状态:0=所有,1=正常,2=异常")
private int status=0 ;
private int taskStatus=0 ;
@ApiModelProperty("任务类型:0=所有,1=入库,2=出库")
@QueryCondition
......
......@@ -178,15 +178,6 @@ public class OrderController {
return orderMapper.toDto(orderList);
}
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 + "]列");
throw new ValidateException("smfcode.error.columnNotExist","必须包含[{0}列",new String[]{titleNameEn});
}
return index;
}
protected List<LiteOrderItem> handleOrderCsv(String fileURL) {
try {
......
......@@ -210,17 +210,7 @@ public class StorageController {
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 + "]列");
throw new ValidateException("smfcode.columnNotExist","必须包含[{0}列",new String[]{titleNameEn});
}
return index;
}
protected String handleStoragePos(String fileURL, String storageId) throws Exception
{
log.info("开始更新料仓【"+storageId+"】的位置信息");
......@@ -239,10 +229,10 @@ public class StorageController {
csvRead.setSkipEmptyRecords(true);//忽略空行
csvRead.setTrimWhitespace(true);//去除空格
csvRead.readHeaders();
int posIndex =getCsvIndex(csvRead, "位置","pos");
int priIndex = getCsvIndex(csvRead,"优先级","pri");
int hIndex = getCsvIndex(csvRead,"高度","h");
int wIndex = getCsvIndex(csvRead,"宽度","w");
int posIndex =csvRead.getCsvIndex( "位置","pos");
int priIndex = csvRead.getCsvIndex("优先级","pri");
int hIndex = csvRead.getCsvIndex("高度","h");
int wIndex = csvRead.getCsvIndex("宽度","w");
int row = 1;
int newRowCount = 0;
......
package com.neotel.smfcore.core.system.rest;
import cn.hutool.core.util.PageUtil;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.bean.ResultBean;
......@@ -73,8 +74,9 @@ public class TaskController {
@ApiOperation("获取队列中的任务")
@GetMapping
@PreAuthorize("@el.check('task:inQueue','task:list')")
public List<TaskDto> filterTask(String groupId, String[] cids){
return getTaskList(groupId,cids);
public PageData<TaskDto> filterTask(String groupId, String[] cids){
List<TaskDto> taskDtos= getTaskList(groupId,cids);
return new PageData<TaskDto>(taskDtos,taskDtos.size());
}
private List<TaskDto> getTaskList(String groupId, String[] cids){
......
......@@ -11,6 +11,8 @@ import java.util.List;
@Setter
public class TaskDto implements Serializable {
@ApiModelProperty("ID")
private String id;
/**
* 是否是单盘出库(联电指出库项目,默认为false即默认批量出库)
*/
......
......@@ -3,5 +3,8 @@ package com.neotel.smfcore.core.system.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.system.service.po.DataLog;
import java.util.List;
public interface IDataLogManager extends IBaseManager<DataLog> {
List<DataLog> findUnFinishedTasks();
}
......@@ -2,14 +2,18 @@ package com.neotel.smfcore.core.system.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.system.service.dao.IDataLogDao;
import com.neotel.smfcore.core.system.service.manager.IDataLogManager;
import com.neotel.smfcore.core.system.service.po.DataLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@Service
......@@ -44,4 +48,19 @@ public class DataLogManagerImpl implements IDataLogManager {
public List<DataLog> findByQuery(Query query) {
return dataLogDao.findByQuery(query);
}
@Override
public List<DataLog> findUnFinishedTasks() {
Criteria c = Criteria.where("status").nin(OP_STATUS.FINISHED.name(),OP_STATUS.CANCEL.name());
//只查找近12个小时未完成的任务
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY,-24);
c.and("createDate").gte(calendar.getTime());
Query query = Query.query(c);
List<DataLog> unFinishedTasks = findByQuery(query);
if(unFinishedTasks == null){
unFinishedTasks = new ArrayList<>();
}
return unFinishedTasks;
}
}
package com.neotel.smfcore.hella.rest;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
......@@ -19,6 +20,7 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
......@@ -56,18 +58,28 @@ public class HellaSensorShelfController {
@ApiOperation("扫码入库")
@PostMapping("/codeIn")
@PreAuthorize("@el.check('sensorShelf:putIn')")
public ResponseEntity<ResultBean> codeIn(String code, String group){
public ResponseEntity<ResultBean> codeIn( @RequestBody Map<String, String> mapValues) {
String code = mapValues.get("code");
String group = mapValues.get("group");
if(ObjectUtils.isEmpty(code)){
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"code"});
}
if(ObjectUtils.isEmpty(group)){
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"group"});
}
String loginUser = SecurityUtils.getLoginUsername();
Collection<DataLog> queueTasks = taskService.getQueueTasks();
ResultBean resultBean = null;
for (DataLog queueTask : queueTasks) {
if(queueTask.isPutInTask() && queueTask.getSourceName().equals(group)){
resultBean = ResultBean.newErrorResult(-1, "the task of ["+queueTask.getBarcode()+"] is unfinished.");
return new ResponseEntity<ResultBean>(resultBean,HttpStatus.OK);
if (queueTask.isPutInTask() && queueTask.getSourceName().equals(group)) {
log.info("codeIn ["+code+"]["+group+"]入库失败:条码["+queueTask.getBarcode()+"]的任务还未结束 ");
throw new ValidateException("smfcore.unfinished","the task of [{0}] is unfinished",new String[]{queueTask.getBarcode()});
// resultBean = ResultBean.newErrorResult(-1, "the task of [" + queueTask.getBarcode() + "] is unfinished.");
// return new ResponseEntity<ResultBean>(resultBean, HttpStatus.OK);
}
}
resultBean = hellaServiceHandler.checkMaterial(loginUser, group, code);
return new ResponseEntity<ResultBean>(resultBean,HttpStatus.OK);
return new ResponseEntity<ResultBean>(resultBean, HttpStatus.OK);
}
......
......@@ -152,12 +152,7 @@ public class UserController {
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"roleId"} );
// throw new ValidateException("修改用户:角色ID不能为空");
}
if (resources.getUsername().equals(Constants.SUPER_USERNAME)) {
if (!resources.getId().equals(SecurityUtils.getCurrentUserId())) {
throw new ValidateException("smfcode.hasNoAccess","无权限修改此用户信息" );
// throw new ValidateException("无权限修改此用户信息");
}
}
userManager.update(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
......@@ -255,15 +250,7 @@ public class UserController {
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+"]列");
throw new ValidateException("smfcode.columnNotExist","必须包含[{0}列",new String[]{titleNameEn});
}
return index;
}
protected String handleUserUpload(String fileURL ) throws Exception
{
......@@ -274,9 +261,9 @@ public class UserController {
csvRead.setTrimWhitespace(true);//去除空格
csvRead.readHeaders();
int idIndex = getCsvIndex(csvRead,"用户ID","ID");
int usernameIndex = getCsvIndex(csvRead,"用户名","UserName");
int codeIndex = getCsvIndex(csvRead,"启用码","CheckCode");
int idIndex = csvRead.getCsvIndex("用户ID","ID");
int usernameIndex = csvRead.getCsvIndex("用户名","UserName");
int codeIndex = csvRead.getCsvIndex("启用码","CheckCode");
int row = 1;
......
......@@ -54,6 +54,8 @@ public class MenuDto implements Serializable {
@ApiModelProperty(value = "图标")
private String icon;
@ApiModelProperty(value = "国际化资源的key")
private String titleKey;
public Boolean getHasChildren() {
if(subCount==null){
......
......@@ -3,10 +3,7 @@ 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.Constants;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.common.utils.*;
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;
......@@ -85,6 +82,12 @@ public class UserManagerImpl implements IUserManager {
if(user.getCheckCode()==null){
user.setCheckCode("");
}
if (user.getUsername().equals(Constants.SUPER_USERNAME)) {
if (!user.getId().equals(SecurityUtils.getCurrentUserId())) {
throw new ValidateException("smfcode.hasNoAccess","无权限修改此用户信息" );
// throw new ValidateException("无权限修改此用户信息");
}
}
//用户名admin不能修改
if(dataUser.getUsername().equals(Constants.SUPER_USERNAME)) {
if(!user.getUsername().equals(dataUser.getUsername())){
......
......@@ -90,6 +90,11 @@ public class Menu extends BasePo implements Serializable {
*/
private String icon;
/**
* 国际化文本key
*/
private String titleKey;
public Boolean getHasChildren() {
if(subCount==0){
return false;
......@@ -111,16 +116,6 @@ public class Menu extends BasePo implements Serializable {
/**
* 此方法用于构建一级菜单,type=1
* @param children
* @param type
* @param permission
* @param title
* @param menuSort
* @param path
* @param component
* @param pid
* @param subCount
* @param icon
*/
public Menu(final List<Menu> children,final Integer type, final String permission, final String title, final Integer menuSort, final String path, final String component, final String pid, final Integer subCount, final String icon) {
this.children = children;
......@@ -137,6 +132,7 @@ public class Menu extends BasePo implements Serializable {
this.hidden = false;
this.componentName = "";
this.icon = icon;
this.titleKey=path;
}
public Menu ( final String permission, final String title, final Integer menuSort, final String pid ) {
......@@ -154,20 +150,22 @@ public class Menu extends BasePo implements Serializable {
this.hidden = false;
this.componentName = title;
this.icon = "";
this.titleKey=path;
}
/**
* 此方法用于构建权限菜单,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,"","","");
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);
public static Menu CreatePMenu( final String title, final Integer menuSort, final String path, final Integer subCount, final String icon ) {
String titleKey=path;
Menu menu = new Menu(new ArrayList<Menu>(), 0, "", title, menuSort, path, "", "", subCount, false, false, false, title, icon,titleKey);
return menu;
}
}
......@@ -49,3 +49,4 @@ smfcode.error.barcode.inQueue=\u4E8C\u7EF4\u7801[{0}]\u5DF2\u5728\u64CD\u4F5C\u9
smfcode.error.pos.inQueue=\u4F4D\u7F6E:[{0}}]\u5DF2\u5728\u64CD\u4F5C\u961F\u5217\u4E2D,\u64CD\u4F5C\u5931\u8D25
smfcode.columnNotExist=\u5FC5\u987B\u5305\u542B[{0}\u5217
smfcore.conotUpdate=\u7528\u6237\u540Dadmin\u4E0D\u80FD\u4FEE\u6539
smfcore.unfinished=\u6761\u7801[{0}]\u7684\u4EFB\u52A1\u8FD8\u672A\u7ED3\u675F
......@@ -49,3 +49,4 @@ smfcode.error.barcode.inQueue=\u4E8C\u7EF4\u7801[{0}]\u5DF2\u5728\u64CD\u4F5C\u9
smfcode.error.pos.inQueue=\u4F4D\u7F6E:[{0}}]\u5DF2\u5728\u64CD\u4F5C\u961F\u5217\u4E2D,\u64CD\u4F5C\u5931\u8D25
smfcode.columnNotExist=\u5FC5\u987B\u5305\u542B[{0}\u5217
smfcore.conotUpdate=\u7528\u6237\u540Dadmin\u4E0D\u80FD\u4FEE\u6539
smfcore.unfinished=\u6761\u7801[{0}]\u7684\u4EFB\u52A1\u8FD8\u672A\u7ED3\u675F
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!