Commit cc9c50f7 LN

提示信息增加国际化处理。获取库位号的提示自动加入警告消息列表

1 个父辈 8c19f16b
......@@ -2,21 +2,15 @@ package com.neotel.smfcore.common.init;
import com.neotel.smfcore.common.utils.PermissionInitUtil;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.UserCodeUtil;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.message.enums.MessageType;
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.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;
import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.manager.impl.GroupManagerImpl;
import com.neotel.smfcore.security.service.manager.impl.MenuManagerImpl;
import com.neotel.smfcore.security.service.manager.impl.RoleManagerImpl;
import com.neotel.smfcore.security.service.manager.impl.UserManagerImpl;
import com.neotel.smfcore.security.service.po.Group;
import com.neotel.smfcore.security.service.po.Menu;
import com.neotel.smfcore.security.service.po.Role;
import com.neotel.smfcore.security.service.po.User;
......@@ -28,9 +22,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.jws.soap.SOAPBinding;
import java.util.*;
import java.util.concurrent.TimeUnit;
@Slf4j
@Component
......@@ -57,7 +49,8 @@ public class DataInitManager {
@Autowired
private InListCache inListCache;
@Autowired
private IMessageManager messageManager;
/**
* 当前版本
*/
......@@ -120,6 +113,9 @@ public class DataInitManager {
allPermissionSet= annotationUtil.initPermission();
inListCache.loadMap();
Message message=Message.newMsg(MessageType.INFO ,"server", "", "", "smfcore.messages.serverStart","服务器启动",null);
messageManager.save(message);
} catch (Exception exception) {
log.error("初始化环境出错..." + exception.toString());
}
......@@ -254,7 +250,8 @@ public class DataInitManager {
//日志管理:物料日志
Menu pMenuLog = Menu.CreatePMenu("日志管理", 30, "log", 2, "log");
Menu menuLog = new Menu(new ArrayList<Menu>(), 1, "taskLog", "物料日志", 1, "taskLog", "neolight/taskLog/index", "", 0, "education");
menus.addAll(createMenus(pMenuLog, menuLog));
Menu msgLog = new Menu(new ArrayList<Menu>(), 1, "message", "消息查询", 1, "message", "neolight/message/index", "", 0, "messagefind");
menus.addAll(createMenus(pMenuLog, menuLog,msgLog));
//报表:出入库、库存
Menu pMenuReport = Menu.CreatePMenu("报表", 30, "report", 2, "inOutData");
......
......@@ -12,12 +12,13 @@ import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.storage.service.dao.IStoragePosDao;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.dao.IAlarmInfoDao;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.core.storage.enums.DeviceType;
......@@ -117,7 +118,7 @@ public class DeviceController {
if (dataCahche.getCache(Constants.CACHE_StopOut)) {
lineMsg = "系统更新中,暂停出入库";
DataCache.lineMsg=lineMsg;
DeviceMessageUtil.updateLineMsg(lineMsg,code,cids,"" ,"smfcore.linemsg.update",null);
resultMap.put("result", "100");
resultMap.put("msg", lineMsg);
return resultMap;
......@@ -250,7 +251,8 @@ public class DeviceController {
if (reelLocInfo == null) {
errorMsg = "[" + barcode.getBarcode() + "]库位["+reelLocInfo.getLockPosName()+"]已被锁定,暂停入库";
lineMsg = errorMsg;
DataCache.lineMsg=lineMsg;
DeviceMessageUtil.updateLineMsg(lineMsg,code,cids, reelLocInfo.getLockPosName(),"smfcore.linemsg.posLock",new String[]{barcode.getBarcode(),reelLocInfo.getLockPosName()});
resultMap.put("result", "99");
resultMap.put("msg", errorMsg);
return resultMap;
......@@ -295,7 +297,8 @@ public class DeviceController {
alarmInfo.setAlarmMsg(msg);
alarmInfoDao.save(alarmInfo);
lineMsg = errorMsg;
DataCache.lineMsg=errorMsg;
DeviceMessageUtil.updateLineMsg(lineMsg,code,cids,"","",null );
} else {
lineMsg = okMsg;
}
......
......@@ -76,10 +76,7 @@ public class DataCache {
* 出库方式
*/
private static Settings settings;
/**
* 流水线提示消息,只保存最后一条
*/
public static String lineMsg="";
@PostConstruct
......
......@@ -17,6 +17,7 @@ import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.kanban.rest.bean.dto.*;
import com.neotel.smfcore.core.kanban.rest.bean.mapstruct.BoxTaskMapper;
import com.neotel.smfcore.core.kanban.rest.bean.query.BoxTaskQueryCriter;
import com.neotel.smfcore.core.message.util.DeviceMessageUtil;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
......@@ -79,7 +80,7 @@ public class BoxKanbanController {
public BoxKanbanDto info(HttpServletRequest servletRequest) {
List<DataLog> allTasks=taskService.getAllTasks();
BoxKanbanDto boxKanbanDto = getKanBan(allTasks);
BoxKanbanDto boxKanbanDto = getKanBan(allTasks,servletRequest.getLocale());
String userId = SecurityUtils.getCurrentUserId();
User user = userManager.get(userId);
......@@ -387,7 +388,7 @@ public class BoxKanbanController {
throw new ValidateException("smfcore.posNotExist", "仓位不存在");
}
private BoxKanbanDto getKanBan(List<DataLog> allTasks) {
private BoxKanbanDto getKanBan(List<DataLog> allTasks,Locale local) {
int allCount = allTasks.size();
int abnormal = 0;
......@@ -411,7 +412,11 @@ public class BoxKanbanController {
allcount++;
}
// DataCache.lineMsg="系统更新中,暂停出入库";
BoxKanbanDto kanbanDto = new BoxKanbanDto(allCount, normal, abnormal,waitCount, new ArrayList<>(),DataCache.lineMsg);
String lineMsg=null;
if(DeviceMessageUtil.lastLineMsg!=null){
lineMsg=DeviceMessageUtil.lastLineMsg.getShowMsg(local);
}
BoxKanbanDto kanbanDto = new BoxKanbanDto(allCount, normal, abnormal,waitCount, new ArrayList<>(), lineMsg);
return kanbanDto;
}
......@@ -446,7 +451,7 @@ public class BoxKanbanController {
if (bean.timeOut()) {
boxDto.setOnLine(false);
for (BoxStatusBean boxStatus : bean.getBoxStatus().values()) {
boxDto.setMsg(bean.getShowMsg(locale));
// boxDto.setMsg(bean.getShowMsg(locale));
boxDto.setBarcode(bean.getCode());
boxDto.setPosName(bean.getPosId());
break;
......
package com.neotel.smfcore.core.language.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
@Service
@Slf4j
public class MyMessageSource extends ResourceBundleMessageSource {
private final String baseName="messages";
public Map<String,String> getMessageMap(Locale locale){
Map<String,String> messageMap=new HashMap<>();
ResourceBundle resourceBundle=getResourceBundle(baseName,locale );
if(resourceBundle!=null){
Set<String> keySet= resourceBundle.keySet();
private final String baseName = "messages";
public Map<String, String> getMessageMap(Locale locale) {
Map<String, String> messageMap = new HashMap<>();
ResourceBundle resourceBundle = getResourceBundle(baseName, locale);
if (resourceBundle != null) {
Set<String> keySet = resourceBundle.keySet();
try {
//Map<String,Object> lookup
Field field1 = resourceBundle.getClass().getDeclaredField("lookup");
field1.setAccessible(true);
Map<String, Object> lookup = (Map<String, Object>) field1.get(resourceBundle);
keySet = lookup.keySet();
} catch (Exception ex) {
log.error("MyMessageSource["+locale.toString()+"]出錯:"+ex);
}
for (String key :
keySet) {
String value= resourceBundle.getString(key);
if(!value.isEmpty()){
messageMap.put(key,value);
String value = resourceBundle.getString(key);
if (!value.isEmpty()) {
messageMap.put(key, value);
}
}
}
......
......@@ -93,10 +93,7 @@ public class MessageManagerImpl implements IMessageManager {
map.put(type, typeV);
map.put(createDate, DateUtil.toDateTimeString(obj.getCreateDate()));
String msgV=obj.getMsg();
if(ObjectUtil.isNotEmpty(obj.getMsgCode())){
msgV=MessageUtils.getText(obj.getMsgCode(),obj.getMsgParams(),locale,obj.getMsg());
}
String msgV=obj.getShowMsg(locale);
map.put(msg, msgV);
list.add(map);
}
......
package com.neotel.smfcore.core.message.service.po;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.base.BasePo;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.message.service.bean.DataContent;
import lombok.AllArgsConstructor;
......@@ -12,6 +14,7 @@ import java.io.Serializable;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@Data
@Document
......@@ -70,4 +73,13 @@ public class Message extends BasePo implements Serializable {
dataList.add(new DataContent(key,value));
}
public String getShowMsg(Locale locale){
if(ObjectUtil.isNotEmpty(msgCode)){
return MessageUtils.getText(msgCode,msgParams,locale,msg);
}
return msg;
}
}
......@@ -2,6 +2,7 @@ package com.neotel.smfcore.core.message.util;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.message.service.manager.IMessageManager;
import com.neotel.smfcore.core.message.service.po.Message;
......@@ -31,11 +32,11 @@ public class DeviceMessageUtil {
/**
* 流水线提示消息,只保存最后一条
*/
public static String lineMsg="";
public static Message lastLineMsg=null;
public static void updateLineMsg(String lineMsg, String code, String cids,String posName) {
lineMsg = lineMsg;
Message message = Message.newMsg(MessageType.WARNING, "server", "", "", "", lineMsg, null);
public static void updateLineMsg(String lineMsg, String code, String cids,String posName,String msgCode,String[] msgParams) {
// lineMsg = lineMsg;
Message message = Message.newMsg(MessageType.WARNING, "server", "", "", msgCode, lineMsg, msgParams);
if (ObjectUtil.isNotEmpty(code)) {
message.addData("code", code);
}
......@@ -45,14 +46,21 @@ public class DeviceMessageUtil {
if (ObjectUtil.isNotEmpty(posName)) {
message.addData("posName", posName);
}
messageManager.save(message);
message= messageManager.save(message);
lastLineMsg=message;
}
public static void addErrorMessage(String cid, String moudle, String msgCode, String msg, String[] msgParam) {
Storage storage = dataCache.getStorage(cid);
if (storage != null) {
Message message=Message.newMsg(MessageType.ERROR ,storage.getName(), storage.getId(), moudle, msgCode,msg,msgParam);
String code=msgCode;
if(ObjectUtil.isNotEmpty(msgCode)){
if(!msgCode.startsWith(MessageUtils.smfcore)){
code=MessageUtils.smfcore+"."+msgCode;
}
}
Message message=Message.newMsg(MessageType.ERROR ,storage.getName(), storage.getId(), moudle, code,msg,msgParam);
messageManager.save(message);
}
}
......
......@@ -223,3 +223,5 @@ smfcorre.message.error=\u9519\u8BEF
smfcore.messages.serverStart=\u670D\u52A1\u5668\u542F\u52A8
smfcore.message=\u6D88\u606F\u67E5\u8BE2
smfcore.inSuddenStop=\u6536\u5230\u6025\u505C\u4FE1\u53F7\uFF0C\u62A5\u8B66\u6025\u505C
smfcore.linemsg.update=\u7CFB\u7EDF\u66F4\u65B0\u4E2D,\u6682\u505C\u51FA\u5165\u5E93
smfcore.linemsg.posLock=[{0}]\u5E93\u4F4D[{1}]\u5DF2\u88AB\u9501\u5B9A,\u6682\u505C\u5165\u5E93
\ No newline at end of file
......@@ -223,4 +223,6 @@ smfcorre.message.error=Error
smfcore.messages.serverStart=Server start-up
smfcore.message=Message Search
smfcore.inSuddenStop=Emergency stop signal received\uFF0Calarm emergency stop
smfcore.linemsg.update=System update in progress, suspend the inlet and outlet
smfcore.linemsg.posLock=The [{0}] storage space [{1}] has been locked, suspend storage
......@@ -223,4 +223,6 @@ smfcorre.message.error=\u30A8\u30E9\u30FC
smfcore.messages.serverStart=\u30B5\u30FC\u30D0\u30FC\u306E\u8D77\u52D5
smfcore.message=\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u304A\u554F\u3044\u5408\u308F\u305B
smfcore.inSuddenStop=\u7DCA\u6025\u505C\u6B62\u4FE1\u53F7\u3092\u53D7\u4FE1\u3057\u3001\u7DCA\u6025\u505C\u6B62\u3092\u8B66\u544A\u3057\u307E\u3059
smfcore.linemsg.update=\u30B7\u30B9\u30C6\u30E0\u66F4\u65B0\u4E2D\u3001\u30A2\u30AF\u30BB\u30B9\u505C\u6B62\u4E2D
smfcore.linemsg.posLock=[{0}] \u30B9\u30C8\u30EC\u30FC\u30B8\u30B9\u30DA\u30FC\u30B9[{1}]\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u3001\u30B9\u30C8\u30EC\u30FC\u30B8\u304C\u505C\u6B62\u3057\u3066\u3044\u308B
......@@ -223,3 +223,5 @@ smfcorre.message.error=\u9519\u8BEF
smfcore.messages.serverStart=\u670D\u52A1\u5668\u542F\u52A8
smfcore.message=\u6D88\u606F\u67E5\u8BE2
smfcore.inSuddenStop=\u6536\u5230\u6025\u505C\u4FE1\u53F7\uFF0C\u62A5\u8B66\u6025\u505C
smfcore.linemsg.update=\u7CFB\u7EDF\u66F4\u65B0\u4E2D,\u6682\u505C\u51FA\u5165\u5E93
smfcore.linemsg.posLock=[{0}]\u5E93\u4F4D[{1}]\u5DF2\u88AB\u9501\u5B9A,\u6682\u505C\u5165\u5E93
......@@ -223,3 +223,5 @@ smfcorre.message.error=\u932F\u8AA4
smfcore.messages.serverStart=\u670D\u52D9\u5668\u555F\u52D5
smfcore.message=\u6D88\u606F\u67E5\u8A62
smfcore.inSuddenStop=\u6536\u5230\u6025\u505C\u4FE1\u865F\uFF0C\u5831\u8B66\u6025\u505C
smfcore.linemsg.update=\u7CFB\u7D71\u66F4\u65B0\u4E2D\uFF0C\u66AB\u505C\u51FA\u5165\u5EAB
smfcore.linemsg.posLock=[{0}]\u5EAB\u4F4D[{1}]\u5DF2\u88AB\u9396\u5B9A\uFF0C\u66AB\u505C\u5165\u5EAB
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!