Commit 54168d12 LN

增加MIMO料仓界面及相关操作

1 个父辈 ca77b59a
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<hutool.version>5.3.4</hutool.version> <hutool.version>5.3.4</hutool.version>
<fastjson.version>1.2.70</fastjson.version> <fastjson.version>1.2.70</fastjson.version>
<swagger.version>2.9.2</swagger.version> <swagger.version>2.9.2</swagger.version>
<log4j2.version>2.16.0</log4j2.version> <log4j2.version>2.17.0</log4j2.version>
</properties> </properties>
<profiles> <profiles>
<profile> <profile>
......
package com.neotel.smfcore.core.device.bean; package com.neotel.smfcore.core.device.bean;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.neotel.smfcore.core.device.enums.BOX_STATUS; import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.system.service.po.AlarmInfo; import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import lombok.Data;
import lombok.ToString; import lombok.ToString;
import java.util.*; import java.util.*;
...@@ -16,6 +19,7 @@ import java.util.*; ...@@ -16,6 +19,7 @@ import java.util.*;
4,电钢报警,1=上下电钢, 4,电钢报警,1=上下电钢,
*/ */
@ToString @ToString
@Data
public class StatusBean { public class StatusBean {
/// <summary> /// <summary>
...@@ -31,6 +35,10 @@ public class StatusBean { ...@@ -31,6 +35,10 @@ public class StatusBean {
/// 操作码(0无操作(发送料仓状态给服务器),1扫码入库(扫码成功后发送给服务器),2 出库(服务器发送) ) /// 操作码(0无操作(发送料仓状态给服务器),1扫码入库(扫码成功后发送给服务器),2 出库(服务器发送) )
/// </summary> /// </summary>
private int op; private int op;
/**
*客户端IP
*/
private String clientIp;
/// <summary> /// <summary>
/// 操作相关数据, /// 操作相关数据,
/// op=1时,客户端发送 code 二维码给服务器,服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度 /// op=1时,客户端发送 code 二维码给服务器,服务器返回时有:posId库位编号,plateW:料盘宽度,plateH:料盘高度
...@@ -67,6 +75,11 @@ public class StatusBean { ...@@ -67,6 +75,11 @@ public class StatusBean {
* 英文提示消息 * 英文提示消息
*/ */
public String msgEn = ""; public String msgEn = "";
public String msgCode="";
public String[] msgParam ;
/// <summary> /// <summary>
/// 包含的多个 BOX 的状态信息 /// 包含的多个 BOX 的状态信息
/// </summary> /// </summary>
...@@ -271,90 +284,98 @@ public class StatusBean { ...@@ -271,90 +284,98 @@ public class StatusBean {
return System.currentTimeMillis() - lastSaveTime >= 5 * 60 * 1000; return System.currentTimeMillis() - lastSaveTime >= 5 * 60 * 1000;
} }
public long getLastSaveTime() { // public long getLastSaveTime() {
return lastSaveTime; // return lastSaveTime;
} // }
//
public void setLastSaveTime(long lastSaveTime) { // public void setLastSaveTime(long lastSaveTime) {
this.lastSaveTime = lastSaveTime; // this.lastSaveTime = lastSaveTime;
} // }
//
public long getTime() { // public long getTime() {
return time; // return time;
} // }
//
public void setTime(long time) { // public void setTime(long time) {
this.time = time; // this.time = time;
} // }
//
public String getCid() { // public String getCid() {
return cid; // return cid;
} // }
//
public void setCid(String cid) { // public void setCid(String cid) {
this.cid = cid; // this.cid = cid;
} // }
//
public int getSeq() { // public int getSeq() {
return seq; // return seq;
} // }
//
public void setSeq(int seq) { // public void setSeq(int seq) {
this.seq = seq; // this.seq = seq;
} // }
//
public int getOp() { // public int getOp() {
return op; // return op;
} // }
//
public void setOp(int op) { // public void setOp(int op) {
this.op = op; // this.op = op;
} // }
//
public Map<String, String> getData() { // public Map<String, String> getData() {
return data; // return data;
} // }
//
public void setData(Map<String, String> data) { // public void setData(Map<String, String> data) {
this.data = data; // this.data = data;
} // }
//
public int getStatus() { // public int getStatus() {
return status; // return status;
} // }
//
public void setStatus(int status) { // public void setStatus(int status) {
this.status = status; // this.status = status;
} // }
//
public String getMsg() { // public String getMsg() {
return msg; // return msg;
} // }
//
public void setMsg(String msg) { // public void setMsg(String msg) {
this.msg = msg; // this.msg = msg;
} // }
//
public void setShowMsg(Locale local){ // public String getClientIp() {
String lang = local.getLanguage(); // return clientIp;
String showMsg = msgData.get(lang); // }
// if(showMsg == null){ //
// if(Language.ENGLISH.getLabel().contains(lang)){ // public void setClientIp(String clientIp) {
// showMsg = msgEn; // this.clientIp = clientIp;
// }else{ // }
// showMsg = msg;
// }
// }
this.msg = showMsg;
}
public Map<String, BoxStatusBean> getBoxStatus() {
return boxStatus;
}
public void setBoxStatus(Map<String, BoxStatusBean> boxStatus) { // public void setShowMsg(Locale local){
this.boxStatus = boxStatus; // String lang = local.getLanguage();
} // String showMsg = msgData.get(lang);
//// if(showMsg == null){
//// if(Language.ENGLISH.getLabel().contains(lang)){
//// showMsg = msgEn;
//// }else{
//// showMsg = msg;
//// }
//// }
// this.msg = showMsg;
// }
//
// public Map<String, BoxStatusBean> getBoxStatus() {
// return boxStatus;
// }
//
// public void setBoxStatus(Map<String, BoxStatusBean> boxStatus) {
// this.boxStatus = boxStatus;
// }
public boolean isAvailable(){ public boolean isAvailable(){
if(!timeOut()){ if(!timeOut()){
...@@ -440,21 +461,21 @@ public class StatusBean { ...@@ -440,21 +461,21 @@ public class StatusBean {
// } // }
// } // }
public String getMsgEn() { // public String getMsgEn() {
return msgEn; // return msgEn;
} // }
//
public void setMsgEn(String msgEn) { // public void setMsgEn(String msgEn) {
this.msgEn = msgEn; // this.msgEn = msgEn;
} // }
//
public Map<String, String> getMsgData() { // public Map<String, String> getMsgData() {
return msgData; // return msgData;
} // }
//
public void setMsgData(Map<String, String> msgData) { // public void setMsgData(Map<String, String> msgData) {
this.msgData = msgData; // this.msgData = msgData;
} // }
public String getDoorReelSingnal() { public String getDoorReelSingnal() {
String doorReelSignal = getFromData("doorReelSignal"); String doorReelSignal = getFromData("doorReelSignal");
...@@ -463,4 +484,19 @@ public class StatusBean { ...@@ -463,4 +484,19 @@ public class StatusBean {
} }
return doorReelSignal; return doorReelSignal;
} }
public String getShowMsg(Locale locale){
//提示信息国际化
if(ObjectUtil.isEmpty(getMsgCode())||ObjectUtil.isEmpty(getMsgEn()) ){
return this.msg;
}else {
String code=this.msgCode;
if(!code.startsWith(MessageUtils.smfcore)){
code=MessageUtils.smfcore+"."+this.msgCode;
}
String newMsg = MessageUtils.getText(code, getMsgParam(), locale, getMsg());
return newMsg;
}
}
} }
...@@ -24,6 +24,7 @@ public class LineBoxHandler extends BaseDeviceHandler { ...@@ -24,6 +24,7 @@ public class LineBoxHandler extends BaseDeviceHandler {
log.error("料仓cid: [" + cid + "]不存在"); log.error("料仓cid: [" + cid + "]不存在");
return null; return null;
} }
statusBean.setClientIp(request.getRemoteHost());
handleMsg(statusBean); handleMsg(statusBean);
statusBean = saveAlarmAndHumidity(statusBean); statusBean = saveAlarmAndHumidity(statusBean);
statusBean = handleInOutFinished(statusBean); statusBean = handleInOutFinished(statusBean);
......
package com.neotel.smfcore.core.device.handler.impl; package com.neotel.smfcore.core.device.handler.impl;
import com.google.common.base.Strings; import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.device.api.IOpAuthApi; import com.neotel.smfcore.core.device.api.IOpAuthApi;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP; import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.storage.enums.DeviceType; import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil; import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* Created by sunke on 2021/7/12. * Created by sunke on 2021/7/12.
...@@ -40,7 +32,11 @@ public class MimoBoxHandler extends BaseDeviceHandler { ...@@ -40,7 +32,11 @@ public class MimoBoxHandler extends BaseDeviceHandler {
log.error("料仓cid: [" + cid + "]不存在"); log.error("料仓cid: [" + cid + "]不存在");
return null; return null;
} }
statusBean.setClientIp(request.getRemoteHost());
handleMsg(statusBean); handleMsg(statusBean);
// if(ObjectUtil.isNotEmpty(statusBean.getMsg())){
// log.info("cid["+cid+"],msgCode["+statusBean.getMsgCode()+"],msg["+statusBean.getMsg()+"]");
// }
statusBean = saveAlarmAndHumidity(statusBean); statusBean = saveAlarmAndHumidity(statusBean);
statusBean = handleInOutFinished(statusBean); statusBean = handleInOutFinished(statusBean);
StatusBean humidityResult = handleHumidity(statusBean); StatusBean humidityResult = handleHumidity(statusBean);
......
...@@ -17,9 +17,7 @@ import com.neotel.smfcore.core.device.util.DataCache; ...@@ -17,9 +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.dto.*;
import com.neotel.smfcore.core.kanban.rest.bean.mapstruct.BoxTaskMapper; 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.kanban.rest.bean.query.BoxTaskQueryCriter;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.manager.impl.StoragePosManagerImpl;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.service.manager.impl.DataLogManagerImpl; import com.neotel.smfcore.core.system.service.manager.impl.DataLogManagerImpl;
...@@ -78,7 +76,7 @@ public class BoxKanbanController { ...@@ -78,7 +76,7 @@ public class BoxKanbanController {
@ApiOperation("获取看板数据") @ApiOperation("获取看板数据")
@GetMapping @GetMapping
@PreAuthorize("@el.check('boxkanban:info')") @PreAuthorize("@el.check('boxkanban:info')")
public BoxKanbanDto info() { public BoxKanbanDto info(HttpServletRequest servletRequest) {
List<DataLog> allTasks=taskService.getAllTasks(); List<DataLog> allTasks=taskService.getAllTasks();
BoxKanbanDto boxKanbanDto = getKanBan(allTasks); BoxKanbanDto boxKanbanDto = getKanBan(allTasks);
...@@ -106,7 +104,7 @@ public class BoxKanbanController { ...@@ -106,7 +104,7 @@ public class BoxKanbanController {
if(storage==null){ if(storage==null){
continue; continue;
} }
boxStatusDtos.add(getBoxDto(storage,allTasks)); boxStatusDtos.add(getBoxDto(storage,allTasks,servletRequest.getLocale()));
if(storage.isNLPShelf()){ if(storage.isNLPShelf()){
groupType=1; groupType=1;
} }
...@@ -248,10 +246,13 @@ public class BoxKanbanController { ...@@ -248,10 +246,13 @@ public class BoxKanbanController {
@ApiOperation("料仓详情") @ApiOperation("料仓详情")
@GetMapping("/boxView") @GetMapping("/boxView")
@PreAuthorize("@el.check('boxkanban:boxView')") @PreAuthorize("@el.check('boxkanban:boxView')")
public BoxStatusDto boxView(String id) { public BoxStatusDto boxView(String id,HttpServletRequest servletRequest) {
List<DataLog> allTasks=taskService.getAllTasks(); List<DataLog> allTasks=taskService.getAllTasks();
Storage storage=dataCache.getStorageById(id); Storage storage=dataCache.getStorageById(id);
BoxStatusDto dto=getBoxDto(storage,allTasks); if(storage==null) {
throw new ValidateException("smfcore.storage.error.notExist", "未找到料仓{0}", new String[]{id});
}
BoxStatusDto dto=getBoxDto(storage,allTasks,servletRequest.getLocale());
return dto; return dto;
} }
...@@ -408,7 +409,7 @@ public class BoxKanbanController { ...@@ -408,7 +409,7 @@ public class BoxKanbanController {
return kanbanDto; return kanbanDto;
} }
private BoxStatusDto getBoxDto(Storage storage,List<DataLog> allTasks) { private BoxStatusDto getBoxDto(Storage storage,List<DataLog> allTasks,Locale locale) {
int inTask = 0; int inTask = 0;
int outTask = 0; int outTask = 0;
for (DataLog data : allTasks) { for (DataLog data : allTasks) {
...@@ -438,6 +439,12 @@ public class BoxKanbanController { ...@@ -438,6 +439,12 @@ public class BoxKanbanController {
} else { } else {
if (bean.timeOut()) { if (bean.timeOut()) {
boxDto.setOnLine(false); boxDto.setOnLine(false);
for (BoxStatusBean boxStatus : bean.getBoxStatus().values()) {
boxDto.setMsg(bean.getShowMsg(locale));
boxDto.setBarcode(bean.getCode());
boxDto.setPosName(bean.getPosId());
break;
}
} else { } else {
boxDto.setOnLine(true); boxDto.setOnLine(true);
for (BoxStatusBean boxStatus : bean.getBoxStatus().values()) { for (BoxStatusBean boxStatus : bean.getBoxStatus().values()) {
...@@ -446,7 +453,7 @@ public class BoxKanbanController { ...@@ -446,7 +453,7 @@ public class BoxKanbanController {
boxDto.setHumidity(humidity); boxDto.setHumidity(humidity);
boxDto.setTemperature(temperature); boxDto.setTemperature(temperature);
boxDto.setStatus(bean.getStatus()); boxDto.setStatus(bean.getStatus());
boxDto.setMsg(bean.getMsg()); boxDto.setMsg(bean.getShowMsg(locale));
boxDto.setBarcode(bean.getCode()); boxDto.setBarcode(bean.getCode());
boxDto.setPosName(bean.getPosId()); boxDto.setPosName(bean.getPosId());
boxDto.setData(bean.getData()); boxDto.setData(bean.getData());
......
...@@ -39,6 +39,7 @@ public class MessageService { ...@@ -39,6 +39,7 @@ public class MessageService {
} }
public Map<String,Map<String, LanguageMsg>> loadMsgMap() { public Map<String,Map<String, LanguageMsg>> loadMsgMap() {
int hasCount=1;
Map<String,Map<String, LanguageMsg>> resourceMap=new HashMap<>(); Map<String,Map<String, LanguageMsg>> resourceMap=new HashMap<>();
List<LanguageMsg> msgs = languageMsgManager.findByQuery(new Query()); List<LanguageMsg> msgs = languageMsgManager.findByQuery(new Query());
for (LanguageMsg msg : for (LanguageMsg msg :
...@@ -53,8 +54,16 @@ public class MessageService { ...@@ -53,8 +54,16 @@ public class MessageService {
if(typeMap==null){ if(typeMap==null){
typeMap=new HashMap<>(); typeMap=new HashMap<>();
} }
typeMap.put(msg.getCode(),msg); if(typeMap.containsKey(msg.getCode())){
resourceMap.put(msg.getType(), typeMap); String delId=msg.getId();
// log.info("资源创建时间["+typeMap.get(msg.getCode()).getCreateDate()+"]["+ msg.getCreateDate()+"]ID["+typeMap.get(msg.getCode()).getId()+"]["+ msg.getId()+"],code=["+msg.getCode()+"]已存在,["+hasCount+"]");
log.info("资源 ID["+typeMap.get(msg.getCode()).getId()+"]["+ msg.getId()+"],code=["+msg.getCode()+"]已存在,删除资源["+delId+"]["+hasCount+"]");
languageMsgManager.delete(msg);
hasCount++;
}else{
typeMap.put(msg.getCode(),msg);
resourceMap.put(msg.getType(), typeMap);
}
} }
log.info("loadMsgMap 共加载到" + msgs.size() + "条Msg"); log.info("loadMsgMap 共加载到" + msgs.size() + "条Msg");
return resourceMap; return resourceMap;
...@@ -269,7 +278,11 @@ public class MessageService { ...@@ -269,7 +278,11 @@ public class MessageService {
MessageUtils.updateMsg(msg); MessageUtils.updateMsg(msg);
} }
} }
log.info("导入资源[" + orgFileName + "]["+type+"]["+lanCode+"],共["+proMap.size()+"]条数据,共更新[" + updateLanguageList.size() + "]条资源,新增[" + newLanguageList.size() + "]条资源"); if(updateLanguageList.size() >0||newLanguageList.size()>0){
log.info("导入资源[" + orgFileName + "]["+type+"]["+lanCode+"],共["+proMap.size()+"]条数据,共更新[" + updateLanguageList.size() + "]条资源,新增[" + newLanguageList.size() + "]条资源");
}else{
log.debug("导入资源[" + orgFileName + "]["+type+"]["+lanCode+"],共["+proMap.size()+"]条数据,共更新[" + updateLanguageList.size() + "]条资源,新增[" + newLanguageList.size() + "]条资源");
}
return "ok"; return "ok";
} }
......
...@@ -9,6 +9,7 @@ import com.neotel.smfcore.common.utils.FileUtil; ...@@ -9,6 +9,7 @@ import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.common.utils.PointUtil; import com.neotel.smfcore.common.utils.PointUtil;
import com.neotel.smfcore.common.utils.QueryHelp; import com.neotel.smfcore.common.utils.QueryHelp;
import com.neotel.smfcore.common.utils.SecurityUtils; import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.enums.DeviceType; import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.rest.dto.StorageDto; import com.neotel.smfcore.core.storage.rest.dto.StorageDto;
...@@ -21,6 +22,7 @@ import com.neotel.smfcore.core.storage.service.manager.IStorageManager; ...@@ -21,6 +22,7 @@ import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager; 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.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.bean.FileProperties; import com.neotel.smfcore.security.bean.FileProperties;
import com.neotel.smfcore.security.rest.bean.dto.RoleDto; import com.neotel.smfcore.security.rest.bean.dto.RoleDto;
...@@ -88,23 +90,28 @@ public class StorageController { ...@@ -88,23 +90,28 @@ public class StorageController {
Query query= QueryHelp.getQuery(criteria); Query query= QueryHelp.getQuery(criteria);
PageData<Storage> pages=storageManager.findByPage(query,pageable); PageData<Storage> pages=storageManager.findByPage(query,pageable);
List<StorageDto> StorageDtos=storageMapper.toDto(pages.getContent()); List<StorageDto> StorageDtos=storageMapper.toDto(pages.getContent());
for (int i=0;i<StorageDtos.size();i++){ for (int i=0;i<StorageDtos.size();i++) {
String groupId=""; String groupId = "";
if(StorageDtos.get(i).getGroupId()!=null&&(!StorageDtos.get(i).getGroupId().isEmpty())){ if (StorageDtos.get(i).getGroupId() != null && (!StorageDtos.get(i).getGroupId().isEmpty())) {
groupId=StorageDtos.get(i).getGroupId(); groupId = StorageDtos.get(i).getGroupId();
} }
Group group=groupManager.get(groupId); Group group = groupManager.get(groupId);
if(group!=null){ if (group != null) {
StorageDtos.get(i).setGroupName(group.getGroupName()); StorageDtos.get(i).setGroupName(group.getGroupName());
}else{ } else {
//此料仓未分组 //此料仓未分组
StorageDtos.get(i).setGroupName(""); StorageDtos.get(i).setGroupName("");
if(!StorageDtos.get(i).getGroupId().equals("")){ if (!StorageDtos.get(i).getGroupId().equals("")) {
storageManager.updateStorageGroup(StorageDtos.get(i).getId(),""); storageManager.updateStorageGroup(StorageDtos.get(i).getId(), "");
log.info("料仓["+StorageDtos.get(i).getId()+"]["+StorageDtos.get(i).getName()+"]的组不存在,修改组为空"); log.info("料仓[" + StorageDtos.get(i).getId() + "][" + StorageDtos.get(i).getName() + "]的组不存在,修改组为空");
} }
} }
//获取设备状态,设置状态和当前任务信息
StatusBean bean = DevicesStatusUtil.getStatusBean(StorageDtos.get(i).getCid());
if (bean != null && bean.getBoxStatus() != null) {
StorageDtos.get(i).setClientIp(bean.getClientIp());
}
} }
return new PageData(StorageDtos,pages.getTotalElements()); return new PageData(StorageDtos,pages.getTotalElements());
} }
......
...@@ -59,4 +59,7 @@ public class StorageDto implements Serializable { ...@@ -59,4 +59,7 @@ public class StorageDto implements Serializable {
@ApiModelProperty("当前绑定的入库单名称") @ApiModelProperty("当前绑定的入库单名称")
private String inListName=""; private String inListName="";
@ApiModelProperty("客户端IP")
private String clientIp;
} }
...@@ -31,7 +31,17 @@ public class DevicesStatusUtil { ...@@ -31,7 +31,17 @@ public class DevicesStatusUtil {
* 获取设备状态Bean * 获取设备状态Bean
*/ */
public static StatusBean getStatusBean(String cid) { public static StatusBean getStatusBean(String cid) {
return statusMap.get(cid); StatusBean statusBean= statusMap.get(cid);
if(statusBean!=null){
StatusBean msgBean=clientMsgs.get(cid);
if(msgBean!=null){
statusBean.setMsg(msgBean.getMsg());
statusBean.setMsgEn(msgBean.getMsgEn());
statusBean.setMsgCode(msgBean.getMsgCode());
statusBean.setMsgParam(msgBean.getMsgParam());
}
}
return statusBean;
} }
/** /**
...@@ -44,7 +54,7 @@ public class DevicesStatusUtil { ...@@ -44,7 +54,7 @@ public class DevicesStatusUtil {
/** /**
* 更新客户端发上来的消息(设备故障等消息) * 更新客户端发上来的消息(设备故障等消息)
*/ */
public static StatusBean updateClientMsg(String cid, String clientMsg, String clientMsgEn) { public static StatusBean updateClientMsg(String cid,String msgCode, String clientMsg, String clientMsgEn,String[] msgParam) {
if (clientMsg == null) { if (clientMsg == null) {
clientMsg = ""; clientMsg = "";
clientMsgEn = ""; clientMsgEn = "";
...@@ -52,6 +62,8 @@ public class DevicesStatusUtil { ...@@ -52,6 +62,8 @@ public class DevicesStatusUtil {
StatusBean statusBean = new StatusBean(); StatusBean statusBean = new StatusBean();
statusBean.setMsg(clientMsg); statusBean.setMsg(clientMsg);
statusBean.setMsgEn(clientMsgEn); statusBean.setMsgEn(clientMsgEn);
statusBean.setMsgCode(msgCode);
statusBean.setMsgParam(msgParam);
clientMsgs.put(cid, statusBean); clientMsgs.put(cid, statusBean);
return statusBean; return statusBean;
} }
...@@ -117,7 +129,7 @@ public class DevicesStatusUtil { ...@@ -117,7 +129,7 @@ public class DevicesStatusUtil {
public static Map<String,String> getAndRemoveOp(String cid){ public static Map<String,String> getAndRemoveOp(String cid){
Map<String, String> opMap = storageOpMap.get(cid); Map<String, String> opMap = storageOpMap.get(cid);
if(opMap!=null){ if(opMap!=null){
opMap.remove(cid); storageOpMap.remove(cid);
} }
return opMap; return opMap;
} }
......
...@@ -173,3 +173,8 @@ smfcore.msg.noCid=\u64CD\u4F5C\u5931\u8D25\uFF0C\u672A\u627E\u5230cid ...@@ -173,3 +173,8 @@ smfcore.msg.noCid=\u64CD\u4F5C\u5931\u8D25\uFF0C\u672A\u627E\u5230cid
smfcore.inList=\u5165\u5E93\u5355 smfcore.inList=\u5165\u5E93\u5355
smfcore.inlist.ameExists=\u5165\u5E93\u5355[{0}]\u5DF2\u5B58\u5728 smfcore.inlist.ameExists=\u5165\u5E93\u5355[{0}]\u5DF2\u5B58\u5728
smfcore.inlist.uploadOK=\u5165\u5E93\u5355\u4E0A\u4F20\u6210\u529F smfcore.inlist.uploadOK=\u5165\u5E93\u5355\u4E0A\u4F20\u6210\u529F
smfcore.inlist.notFound=\u672A\u627E\u5230\u5165\u5E93\u5355[{0}]
smfcore.inlist.listOk=\u5165\u5E93\u5355[{0}]\u5DF2\u5B8C\u6210
smfcore.inlist.setOk=\u8BBE\u7F6E\u6210\u529F
smfcore.inlist.pnItemOk=\u5165\u5E93\u5355[{0}]\u7684\u7269\u6599[{1}]\u5DF2\u5165\u5E93\u5B8C\u6210
smfcore.inlist.noPn=\u5165\u5E93\u5355[{0}]\u6CA1\u6709\u7269\u6599[{1}]\u5165\u5E93\u9700\u6C42
...@@ -171,4 +171,10 @@ smfcore.msg.ok=Operation successful ...@@ -171,4 +171,10 @@ smfcore.msg.ok=Operation successful
smfcore.msg.noCid=Operation failed, cid not found smfcore.msg.noCid=Operation failed, cid not found
smfcore.inList=InList smfcore.inList=InList
smfcore.inlist.ameExists=InList[{0}]already exist smfcore.inlist.ameExists=InList[{0}]already exist
smfcore.inlist.uploadOK=InList upload successful
\ No newline at end of file \ No newline at end of file
smfcore.inlist.uploadOK=InList upload successful
smfcore.materialBox.qtyError=Please enter the correct quantity
smfcore.inlist.notFound=Entry slip not found [{0}]
smfcore.inlist.listOk=Inbound orders [{0}] completed
smfcore.inlist.setOk=Setup successful
smfcore.inlist.pnItemOk=The material [{1}] of the incoming order [{0}] has been entered into the warehouse
smfcore.inlist.noPn=Inbound order [{0}] has no material [{1}] inbound requirement
...@@ -171,4 +171,10 @@ smfcore.msg.ok=\u52D5\u4F5C\u78BA\u8A8D\u6E08\u307F ...@@ -171,4 +171,10 @@ smfcore.msg.ok=\u52D5\u4F5C\u78BA\u8A8D\u6E08\u307F
smfcore.msg.noCid=\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3001cid\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 smfcore.msg.noCid=\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3001cid\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
smfcore.inList=\u30A4\u30F3\u30D0\u30A6\u30F3\u30C9\u53D7\u6CE8 smfcore.inList=\u30A4\u30F3\u30D0\u30A6\u30F3\u30C9\u53D7\u6CE8
smfcore.inlist.ameExists=\u53D7\u6CE8\u6848\u4EF6[{0}]\u306F\u65E2\u306B\u5B58\u5728\u3059\u308B smfcore.inlist.ameExists=\u53D7\u6CE8\u6848\u4EF6[{0}]\u306F\u65E2\u306B\u5B58\u5728\u3059\u308B
smfcore.inlist.uploadOK=\u53D7\u4FE1\u3057\u305F\u6CE8\u6587\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u6210\u529F
\ No newline at end of file \ No newline at end of file
smfcore.inlist.uploadOK=\u53D7\u4FE1\u3057\u305F\u6CE8\u6587\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u6210\u529F
smfcore.materialBox.qtyError=\u6B63\u3057\u3044\u6570\u91CF\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044
smfcore.inlist.notFound=\u30A8\u30F3\u30C8\u30EA \u30B9\u30EA\u30C3\u30D7\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 [{0}]
smfcore.inlist.listOk=\u30A4\u30F3\u30D0\u30A6\u30F3\u30C9\u30AA\u30FC\u30C0\u30FC[{0}]\u5B8C\u4E86
smfcore.inlist.setOk=\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6210\u529F
smfcore.inlist.pnItemOk=\u5165\u8377\u30AA\u30FC\u30C0\u30FC[{0}]\u306E\u6750\u6599[{1}]\u304C\u5009\u5EAB\u306B\u5165\u5EAB\u3055\u308C\u307E\u3057\u305F
smfcore.inlist.noPn=\u53D7\u6CE8\u6848\u4EF6[{0}]\u306B\u6750\u6599[{1}]\u306E\u5165\u8377\u8981\u4EF6\u304C\u306A\u3044
...@@ -171,4 +171,10 @@ smfcore.msg.ok=\u64CD\u4F5C\u6210\u529F ...@@ -171,4 +171,10 @@ smfcore.msg.ok=\u64CD\u4F5C\u6210\u529F
smfcore.msg.noCid=\u64CD\u4F5C\u5931\u8D25\uFF0C\u672A\u627E\u5230cid smfcore.msg.noCid=\u64CD\u4F5C\u5931\u8D25\uFF0C\u672A\u627E\u5230cid
smfcore.inList=\u5165\u5E93\u5355 smfcore.inList=\u5165\u5E93\u5355
smfcore.inlist.ameExists=\u5165\u5E93\u5355[{0}]\u5DF2\u5B58\u5728 smfcore.inlist.ameExists=\u5165\u5E93\u5355[{0}]\u5DF2\u5B58\u5728
smfcore.inlist.uploadOK=\u5165\u5E93\u5355\u4E0A\u4F20\u6210\u529F
\ No newline at end of file \ No newline at end of file
smfcore.inlist.uploadOK=\u5165\u5E93\u5355\u4E0A\u4F20\u6210\u529F
smfcore.materialBox.qtyError=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u6570\u91CF
smfcore.inlist.notFound=\u672A\u627E\u5230\u5165\u5E93\u5355[{0}]
smfcore.inlist.listOk=\u5165\u5E93\u5355[{0}]\u5DF2\u5B8C\u6210
smfcore.inlist.setOk=\u8BBE\u7F6E\u6210\u529F
smfcore.inlist.pnItemOk=\u5165\u5E93\u5355[{0}]\u7684\u7269\u6599[{1}]\u5DF2\u5165\u5E93\u5B8C\u6210
smfcore.inlist.noPn=\u5165\u5E93\u5355[{0}]\u6CA1\u6709\u7269\u6599[{1}]\u5165\u5E93\u9700\u6C42
\ No newline at end of file \ No newline at end of file
...@@ -171,4 +171,10 @@ smfcore.msg.ok=\u64CD\u4F5C\u6210\u529F ...@@ -171,4 +171,10 @@ smfcore.msg.ok=\u64CD\u4F5C\u6210\u529F
smfcore.msg.noCid=\u64CD\u4F5C\u5931\u6557\uFF0C\u672A\u627E\u5230cid smfcore.msg.noCid=\u64CD\u4F5C\u5931\u6557\uFF0C\u672A\u627E\u5230cid
smfcore.inList=\u5165\u5EAB\u55AE smfcore.inList=\u5165\u5EAB\u55AE
smfcore.inlist.ameExists=\u5165\u5EAB\u55AE[{0}]\u5DF2\u5B58\u5728 smfcore.inlist.ameExists=\u5165\u5EAB\u55AE[{0}]\u5DF2\u5B58\u5728
smfcore.inlist.uploadOK=\u5165\u5EAB\u55AE\u4E0A\u50B3\u6210\u529F
\ No newline at end of file \ No newline at end of file
smfcore.inlist.uploadOK=\u5165\u5EAB\u55AE\u4E0A\u50B3\u6210\u529F
smfcore.materialBox.qtyError=\u8ACB\u8F38\u5165\u6B63\u78BA\u7684\u6578\u91CF
smfcore.inlist.notFound=\u672A\u627E\u5230\u5165\u5EAB\u55AE[{0}]
smfcore.inlist.listOk=\u5165\u5EAB\u55AE[{0}]\u5DF2\u5B8C\u6210
smfcore.inlist.setOk=\u8A2D\u7F6E\u6210\u529F
smfcore.inlist.pnItemOk=\u5165\u5EAB\u55AE[{0}]\u7684\u7269\u6599[{1}]\u5DF2\u5165\u5EAB\u5B8C\u6210
smfcore.inlist.noPn=\u5165\u5EAB\u55AE[{0}]\u6C92\u6709\u7269\u6599[{1}]\u5165\u5EAB\u9700\u6C42
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!