Commit 54eb7048 LN

增加新设备ml5s

1 个父辈 e9f70c62
...@@ -91,7 +91,7 @@ public class DeviceStateDurationUtil { ...@@ -91,7 +91,7 @@ public class DeviceStateDurationUtil {
DeviceStateDuration currentDuration = null; DeviceStateDuration currentDuration = null;
// 1. 从集合中查找 // 1. 从集合中查找
for (DeviceStateDuration d : lastStorageStatusMap) { for (DeviceStateDuration d : lastStorageStatusMap) {
if (cid.equals(d.getCid()) && d.getDeviceType() == dType) { if (cid.equals(d.getCid()) && d.getDeviceType().equals(dType) ) {
currentDuration = d; currentDuration = d;
break; break;
} }
......
...@@ -63,11 +63,17 @@ public enum EquipmentType { ...@@ -63,11 +63,17 @@ public enum EquipmentType {
/** /**
* NEXIM * NEXIM
*/ */
NEXIM(); NEXIM(),
ML5S(),
ML5O();
public static List<EquipmentType> availableTypeList(){ public static List<EquipmentType> availableTypeList(){
return Lists.newArrayList(AUTO,NS100,NS200,NEOCOUNTER,PANACIMNEOLINK,AGV,T_SOLUTION,NEXIM); return Lists.newArrayList(AUTO,NEOCOUNTER,ML5S,ML5O);
// return Lists.newArrayList(AUTO,NS100,NS200,NEOCOUNTER,PANACIMNEOLINK,AGV,T_SOLUTION,NEXIM);
} }
public static List<String> apiTypeList(){ public static List<String> apiTypeList(){
...@@ -84,4 +90,8 @@ public enum EquipmentType { ...@@ -84,4 +90,8 @@ public enum EquipmentType {
return Lists.newArrayList(NEOCOUNTER.name()); return Lists.newArrayList(NEOCOUNTER.name());
} }
public static List<String> otherList(){
return Lists.newArrayList(ML5S.name(),ML5O.name());
}
} }
...@@ -201,10 +201,16 @@ public class EquipViewController { ...@@ -201,10 +201,16 @@ public class EquipViewController {
EquipGroupDto dto=new EquipGroupDto(MessageUtils.getText("smfcore.equipment.view.ncgroup",locale,"Neo Counter"),neoCounterList); EquipGroupDto dto=new EquipGroupDto(MessageUtils.getText("smfcore.equipment.view.ncgroup",locale,"Neo Counter"),neoCounterList);
list.add(dto); list.add(dto);
} }
List<EquipStatusDto> ml5sList=resultList.stream().filter(dto->EquipmentType.otherList().contains(dto.getType())).collect(Collectors.toList());
if(ml5sList.size()>0){
EquipGroupDto dto=new EquipGroupDto(MessageUtils.getText("smfcore.equipment.view.ml5",locale,"ML5"),ml5sList);
list.add(dto);
}
List<String> otherType= new ArrayList<>(); List<String> otherType= new ArrayList<>();
otherType.addAll(EquipmentType.nsList()); otherType.addAll(EquipmentType.nsList());
otherType.addAll(EquipmentType.apiTypeList() ); otherType.addAll(EquipmentType.apiTypeList() );
otherType.addAll(EquipmentType.neoCounterList() ); otherType.addAll(EquipmentType.neoCounterList() );
otherType.addAll(EquipmentType.otherList());
List<EquipStatusDto> otherList=resultList.stream().filter(dto->otherType.contains(dto.getType())==false).collect(Collectors.toList()); List<EquipStatusDto> otherList=resultList.stream().filter(dto->otherType.contains(dto.getType())==false).collect(Collectors.toList());
if(otherList.size()>0){ if(otherList.size()>0){
EquipGroupDto dto=new EquipGroupDto("",otherList); EquipGroupDto dto=new EquipGroupDto("",otherList);
......
...@@ -43,6 +43,9 @@ public class Equipment extends BasePo implements Serializable { ...@@ -43,6 +43,9 @@ public class Equipment extends BasePo implements Serializable {
public boolean isNEOCOUNTER() { public boolean isNEOCOUNTER() {
return EquipmentType.NEOCOUNTER.name().equals(type); return EquipmentType.NEOCOUNTER.name().equals(type);
} }
public boolean isML5S() {
return EquipmentType.ML5S.name().equals(type);
}
/** /**
* 是否是接口设备 * 是否是接口设备
* @return * @return
......
...@@ -96,6 +96,15 @@ public class EquipmentCache { ...@@ -96,6 +96,15 @@ public class EquipmentCache {
} }
} }
public Equipment findEquipByType(String type){
for(Equipment equipment : getAllEquipment().values()){
if(equipment.getType().equals(type)){
return equipment;
}
}
return null;
}
public synchronized Equipment autoCreateEquip(String name,String cid, String type) { public synchronized Equipment autoCreateEquip(String name,String cid, String type) {
//判断cid存在 //判断cid存在
Equipment equipment = null; Equipment equipment = null;
......
...@@ -24,60 +24,60 @@ public class Micron1053Menu { ...@@ -24,60 +24,60 @@ public class Micron1053Menu {
@PostConstruct @PostConstruct
public void init(){ public void init(){
//
String menuLabel = "1053"; // String menuLabel = "1053";
//
//Status // //Status
MenuInit.addMenu(menuLabel,null,2, "Status","status", "state/state/index","state"); // MenuInit.addMenu(menuLabel,null,2, "Status","status", "state/state/index","state");
//ML5 // //ML5
Menu mL5 = Menu.CreatePMenu("ML5", 13, "mlFive", "miFive",null); // Menu mL5 = Menu.CreatePMenu("ML5", 13, "mlFive", "miFive",null);
MenuInit.addMenu(menuLabel,mL5,130, "ML5","miFive", "mlFive/miFive/index","miFive"); // MenuInit.addMenu(menuLabel,mL5,130, "ML5","miFive", "mlFive/miFive/index","miFive");
MenuInit.addMenu(menuLabel,mL5, 131, "ML5O STATUS", "ML5DispatchSelect", "mlFive/dispatchSelect/index","dispatchSelection"); // MenuInit.addMenu(menuLabel,mL5, 131, "ML5O STATUS", "ML5DispatchSelect", "mlFive/dispatchSelect/index","dispatchSelection");
MenuInit.addMenu(menuLabel,mL5,132, "ML5S STORAGE","ML5Loading", "mlFive/LoadingSelect/index","loadingSelection"); // MenuInit.addMenu(menuLabel,mL5,132, "ML5S STORAGE","ML5Loading", "mlFive/LoadingSelect/index","loadingSelection");
MenuInit.addMenu(menuLabel,mL5,133, "DISPATCH STATUS", "dispatchStatus", "mlFive/dispatchStatus/index","dispatchStatus"); // MenuInit.addMenu(menuLabel,mL5,133, "DISPATCH STATUS", "dispatchStatus", "mlFive/dispatchStatus/index","dispatchStatus");
MenuInit.addMenu(menuLabel,mL5,134,"LOADING STATUS","loadingStatus", "mlFive/loadingStatus/index","loadingStatus"); // MenuInit.addMenu(menuLabel,mL5,134,"LOADING STATUS","loadingStatus", "mlFive/loadingStatus/index","loadingStatus");
MenuInit.addMenu(menuLabel,mL5,136,"ML5S Dispatch","mlFivesDispatch", "mlFives/dispatch/index","dispatch"); // MenuInit.addMenu(menuLabel,mL5,136,"ML5S Dispatch","mlFivesDispatch", "mlFives/dispatch/index","dispatch");
//status菜单 // //status菜单
// Menu status = Menu.CreatePMenu("Status", 14, "status1053", "state",null); //// Menu status = Menu.CreatePMenu("Status", 14, "status1053", "state",null);
// MenuInit.addMenu(menuLabel,status,140, "Equipment Status","statePage", "state/state/index","statePage"); //// MenuInit.addMenu(menuLabel,status,140, "Equipment Status","statePage", "state/state/index","statePage");
// MenuInit.addMenu(menuLabel,status,141, "Pallet Status","palletStatus", "status/palletStatus/index","BOM"); //// MenuInit.addMenu(menuLabel,status,141, "Pallet Status","palletStatus", "status/palletStatus/index","BOM");
// MenuInit.addMenu(menuLabel,status,142, "Temperature Log","tempLog", "status/tempLog/index","temput"); //// MenuInit.addMenu(menuLabel,status,142, "Temperature Log","tempLog", "status/tempLog/index","temput");
// MenuInit.addMenu(menuLabel,status,143, "Humidity Log","humidityLog", "status/humidityLog/index","hum"); //// MenuInit.addMenu(menuLabel,status,143, "Humidity Log","humidityLog", "status/humidityLog/index","hum");
//
//
MenuInit.addMenu(menuLabel,null,150, "SBSH1","SBSH1", "SBSH/sbshOne/index","sbsh"); // MenuInit.addMenu(menuLabel,null,150, "SBSH1","SBSH1", "SBSH/sbshOne/index","sbsh");
MenuInit.addMenu(menuLabel,null,151, "SBSH2","SBSH2", "SBSH/sbshOne/index","sbsh"); // MenuInit.addMenu(menuLabel,null,151, "SBSH2","SBSH2", "SBSH/sbshOne/index","sbsh");
MenuInit.addMenu(menuLabel,null,152, "SBDH1","SBDH1", "SBSH/sbshOne/index","sbdh"); // MenuInit.addMenu(menuLabel,null,152, "SBDH1","SBDH1", "SBSH/sbshOne/index","sbdh");
MenuInit.addMenu(menuLabel,null,153, "SBDH2","SBDH2", "SBSH/sbshOne/index","sbdh"); // MenuInit.addMenu(menuLabel,null,153, "SBDH2","SBDH2", "SBSH/sbshOne/index","sbdh");
MenuInit.addMenu(menuLabel,null,154, "SBDH3","SBDH3", "SBSH/sbshOne/index","sbdh"); // MenuInit.addMenu(menuLabel,null,154, "SBDH3","SBDH3", "SBSH/sbshOne/index","sbdh");
//CI // //CI
MenuInit.addMenu(menuLabel,null,160, "CI","cl", "cl/cl/index","cl"); // MenuInit.addMenu(menuLabel,null,160, "CI","cl", "cl/cl/index","cl");
//MT // //MT
MenuInit.addMenu(menuLabel,null,161, "MT","mt", "mt/mt/index","mt"); // MenuInit.addMenu(menuLabel,null,161, "MT","mt", "mt/mt/index","mt");
//MI1 // //MI1
MenuInit.addMenu(menuLabel,null,162, "MI1","ml", "miOne/miOne/index","miOne"); // MenuInit.addMenu(menuLabel,null,162, "MI1","ml", "miOne/miOne/index","miOne");
//MI2 // //MI2
MenuInit.addMenu(menuLabel,null,163, "MI2","ml2", "miOne/miOne/index","miOne"); // MenuInit.addMenu(menuLabel,null,163, "MI2","ml2", "miOne/miOne/index","miOne");
MenuInit.addMenu(menuLabel,null,130, "Shelf Life Mgmt","expSetting", "system/expirationSetting/index","expireSetting"); // MenuInit.addMenu(menuLabel,null,130, "Shelf Life Mgmt","expSetting", "system/expirationSetting/index","expireSetting");
// //Report //// //Report
// MenuInit.addMenu(menuLabel,null,128, "Report","reports", "report/reports/index","report"); //// MenuInit.addMenu(menuLabel,null,128, "Report","reports", "report/reports/index","report");
//设置管理 // //设置管理
Menu poutSet = Menu.CreatePMenu("设置", 10, "system", "system",null); // Menu poutSet = Menu.CreatePMenu("设置", 10, "system", "system",null);
MenuInit.addMenu(menuLabel,poutSet,166, "Diagnosis","diagnosis", "system/diagnosis/index","diagnosis"); // MenuInit.addMenu(menuLabel,poutSet,166, "Diagnosis","diagnosis", "system/diagnosis/index","diagnosis");
//报表:出入库、库存 // //报表:出入库、库存
Menu pMenuReport = Menu.CreatePMenu("报表", 7, "report","inOutData",null); // Menu pMenuReport = Menu.CreatePMenu("报表", 7, "report","inOutData",null);
MenuInit.addMenu(menuLabel,pMenuReport,201, "料盘日志","trayLog", "report/trayLog/index","trayLog"); // MenuInit.addMenu(menuLabel,pMenuReport,201, "料盘日志","trayLog", "report/trayLog/index","trayLog");
MenuInit.addMenu(menuLabel,pMenuReport,202, "Utilization ","utilization ", "report/utilization/index","utilization"); // MenuInit.addMenu(menuLabel,pMenuReport,202, "Utilization ","utilization ", "report/utilization/index","utilization");
MenuInit.addMenu(menuLabel,pMenuReport,203, "ErrorLog","errorLog", "report/errorLog/index","errorLog"); // MenuInit.addMenu(menuLabel,pMenuReport,203, "ErrorLog","errorLog", "report/errorLog/index","errorLog");
MenuInit.addMenu(menuLabel,pMenuReport,204, "ErrorReport","errorReport", "report/errorReport/index","errorReport"); // MenuInit.addMenu(menuLabel,pMenuReport,204, "ErrorReport","errorReport", "report/errorReport/index","errorReport");
MenuInit.addMenu(menuLabel,pMenuReport,205, "EventLog","eventLog", "report/eventLog/index","eventlog"); // MenuInit.addMenu(menuLabel,pMenuReport,205, "EventLog","eventLog", "report/eventLog/index","eventlog");
MenuInit.addMenu(menuLabel,pMenuReport,206, "Tool Utilization","deviceSChart", "report/deviceSChart/index","deviceSChart"); // MenuInit.addMenu(menuLabel,pMenuReport,206, "Tool Utilization","deviceSChart", "report/deviceSChart/index","deviceSChart");
//
//Help // //Help
MenuInit.addMenu(menuLabel,null,999, "Help","helps", "help/helps/index","help"); // MenuInit.addMenu(menuLabel,null,999, "Help","helps", "help/helps/index","help");
String apiName = smfApi.getApiName(); // String apiName = smfApi.getApiName();
if(Strings.isNotBlank(apiName) && apiName.equals(menuLabel)){ // if(Strings.isNotBlank(apiName) && apiName.equals(menuLabel)){
menuInit.showMenu(apiName); // menuInit.showMenu(apiName);
} // }
} }
} }
package com.neotel.smfcore.custom.micron1551.bean;
import lombok.Data;
import java.io.Serializable;
@Data
/**
* INPUT OUTPUT 信息
*/
public class SPutInfo implements Serializable {
private String name;
/**
* 状态,0=离线,1=在线,2=急停,3=故障,4=警告,5=调试,6=忙碌中
*/
private int currState;
private String msg;
/**
* 小车到位状态,0=无,1=到位
*/
private int trolley;
/**
* 料串到位状态,0=无,1=到位
*/
private int stacker;
/**
* 料串等待离开中
*/
private boolean waitLeave;
/**
* 摄像头扫码内容,Input用
*/
private String cameraCode;
/**
* 已放扫码数量,Input用
*/
private int scannedQty;
/**
* 已取料盘数量,Input用
*/
private int pickedQty;
/**
* 已放料盘数量, Output用
*/
private int putQty;
}
package com.neotel.smfcore.custom.micron1551.bean;
import lombok.Data;
import java.io.Serializable;
/**
* 龙门架状态
*/
@Data
public class TPMoveInfo implements Serializable {
/**
* 名称
*/
private String name;
/**
* 状态,0=离线,1=在线,2=急停,3=故障,4=警告,5=调试,6=忙碌中
*/
private int currState;
/**
* 是否在移动中
*/
private boolean isMoveing=false;
/**
* 当前正在移动的料盘信息
*/
private String currMoveReel;
/**
* 取料位置
*/
private String startIn="";
/**
* 目标放料位置
*/
private String tOut="";
}
package com.neotel.smfcore.custom.micron1551.bean.dto;
import com.neotel.smfcore.core.equipment.bean.EquipMsg;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
public class ML5SViewDto implements Serializable {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("CID")
private String cid;
@ApiModelProperty("设备状态,0=离线,1=正常运行中, 2=急停,3=故障,4=警告,5=调试,6=忙碌中")
//1=设备联机 2=急停,3=故障,4=警告,5=调试,6=忙碌中
private int status=0;
@ApiModelProperty("文字显示")
private String msg = "";
@ApiModelProperty("当前Loading信息名称,为空时可以点START,")
private String currLoading = "";
@ApiModelProperty("仅显示的日志消息集合")
private List<EquipMsg> showLogs = new ArrayList<>();
/**
* 发上来的数据
*
* ml5s定义:
* key=LP1,value=入口1
* key=LP2,value=入口2
* key=TP1,value=龙门架1
* kty=TP2,value=龙门架2
* key=UP1,value=出口1
* key=UP2,value=出口2
* key=UP3,value=出口3
* key=UP4,value=出口4
*/
private Map<String, Object> data = new HashMap<>();
}
package com.neotel.smfcore.custom.micron1551.controller;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.equipment.bean.EquipStatusBean;
import com.neotel.smfcore.core.equipment.enums.EquipmentType;
import com.neotel.smfcore.core.equipment.service.po.Equipment;
import com.neotel.smfcore.core.equipment.util.EquipmentCache;
import com.neotel.smfcore.core.inList.service.po.InList;
import com.neotel.smfcore.core.system.util.EquipStatusUtil;
import com.neotel.smfcore.custom.micron1053.loading.util.LoadingUtil;
import com.neotel.smfcore.custom.micron1551.bean.dto.ML5SViewDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@Api(tags = "1551:ML5S")
@RequestMapping("/rest/micron/ml5s")
public class ML5SDeviceController {
@Autowired
private EquipmentCache equipmentCache;
@Autowired
private DataCache dataCache;
@Autowired
private LoadingUtil loadingUtil;
@ApiOperation("获取ML5S信息")
@GetMapping("ml5sView")
@PreAuthorize("@el.check('equipmentView:info')")
public ML5SViewDto ml5sView(String cid, HttpServletRequest servletRequest){
Equipment equip =null;
if(ObjectUtil.isEmpty(cid)){
equip=equipmentCache.findEquipByType(EquipmentType.ML5S.name());
}
else {
equip = equipmentCache.getEquipment(cid);
}
if (equip == null ||(!equip.isML5S())) {
throw new ValidateException("smfcore.equip.notExist","设备不存在");
}
ML5SViewDto dto=new ML5SViewDto();
dto.setCid(cid);
dto.setName(equip.getName());
EquipStatusBean bean= EquipStatusUtil.getStatusBean(equip.getCid());
if(bean!=null){
if(bean.timeOut()){
dto.setStatus(0);
}else{
dto.setStatus(bean.getStatus());
dto.setMsg(bean.getShowMsg(servletRequest.getLocale()));
dto.setData(bean.getData());
dto.setShowLogs(bean.getShowLogs());
}
}
InList inList = loadingUtil.getInlist();
if (inList == null) {
dto.setCurrLoading("");
} else {
dto.setCurrLoading(inList.getName());
}
return dto;
}
}
package com.neotel.smfcore.custom.micron1551.util;
import com.neotel.smfcore.common.init.MenuInit;
import com.neotel.smfcore.core.api.SmfApi;
import com.neotel.smfcore.security.service.po.Menu;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class Micron1551Menu {
@Autowired
MenuInit menuInit;
@Autowired
SmfApi smfApi;
@PostConstruct
public void init(){
String menuLabel = "1551";
//Status
MenuInit.addMenu(menuLabel,null,2, "Status","status", "state/state/index","state");
//ML5
Menu mL5 = Menu.CreatePMenu("ML5", 13, "mlFive", "miFive",null);
MenuInit.addMenu(menuLabel,mL5,120, "ML5S Input","ml5sInput", "ml5s/input/index","dispatch");
MenuInit.addMenu(menuLabel,mL5,121, "ML5S Ouput","ml5sOutput", "ml5s/output/index","dispatch");
MenuInit.addMenu(menuLabel,mL5,122, "X800","X800", "x800kanban/index","X800");
MenuInit.addMenu(menuLabel,mL5, 131, "ML5O STATUS", "ML5DispatchSelect", "mlFive/dispatchSelect/index","dispatchSelection");
// MenuInit.addMenu(menuLabel,mL5,132, "ML5S STORAGE","ML5Loading", "mlFive/LoadingSelect/index","loadingSelection");
// MenuInit.addMenu(menuLabel,mL5,133, "DISPATCH STATUS", "dispatchStatus", "mlFive/dispatchStatus/index","dispatchStatus");
// MenuInit.addMenu(menuLabel,mL5,134,"LOADING STATUS","loadingStatus", "mlFive/loadingStatus/index","loadingStatus");
// MenuInit.addMenu(menuLabel,mL5,136,"ML5S Dispatch","mlFivesDispatch", "mlFives/dispatch/index","dispatch");
//status菜单
// Menu status = Menu.CreatePMenu("Status", 14, "status1053", "state",null);
// MenuInit.addMenu(menuLabel,status,140, "Equipment Status","statePage", "state/state/index","statePage");
// MenuInit.addMenu(menuLabel,status,141, "Pallet Status","palletStatus", "status/palletStatus/index","BOM");
// MenuInit.addMenu(menuLabel,status,142, "Temperature Log","tempLog", "status/tempLog/index","temput");
// MenuInit.addMenu(menuLabel,status,143, "Humidity Log","humidityLog", "status/humidityLog/index","hum");
//
// MenuInit.addMenu(menuLabel,null,150, "SBSH1","SBSH1", "SBSH/sbshOne/index","sbsh");
// MenuInit.addMenu(menuLabel,null,151, "SBSH2","SBSH2", "SBSH/sbshOne/index","sbsh");
// MenuInit.addMenu(menuLabel,null,152, "SBDH1","SBDH1", "SBSH/sbshOne/index","sbdh");
// MenuInit.addMenu(menuLabel,null,153, "SBDH2","SBDH2", "SBSH/sbshOne/index","sbdh");
// MenuInit.addMenu(menuLabel,null,154, "SBDH3","SBDH3", "SBSH/sbshOne/index","sbdh");
// //CI
// MenuInit.addMenu(menuLabel,null,160, "CI","cl", "cl/cl/index","cl");
// //MT
// MenuInit.addMenu(menuLabel,null,161, "MT","mt", "mt/mt/index","mt");
// //MI1
// MenuInit.addMenu(menuLabel,null,162, "MI1","ml", "miOne/miOne/index","miOne");
// //MI2
// MenuInit.addMenu(menuLabel,null,163, "MI2","ml2", "miOne/miOne/index","miOne");
// MenuInit.addMenu(menuLabel,null,130, "Shelf Life Mgmt","expSetting", "system/expirationSetting/index","expireSetting");
//// //Report
//// MenuInit.addMenu(menuLabel,null,128, "Report","reports", "report/reports/index","report");
//设置管理
Menu poutSet = Menu.CreatePMenu("设置", 10, "system", "system",null);
MenuInit.addMenu(menuLabel,poutSet,166, "Diagnosis","diagnosis", "system/diagnosis/index","diagnosis");
//报表:出入库、库存
Menu pMenuReport = Menu.CreatePMenu("报表", 7, "report","inOutData",null);
MenuInit.addMenu(menuLabel,pMenuReport,201, "料盘日志","trayLog", "report/trayLog/index","trayLog");
MenuInit.addMenu(menuLabel,pMenuReport,202, "Utilization ","utilization ", "report/utilization/index","utilization");
MenuInit.addMenu(menuLabel,pMenuReport,203, "ErrorLog","errorLog", "report/errorLog/index","errorLog");
MenuInit.addMenu(menuLabel,pMenuReport,204, "ErrorReport","errorReport", "report/errorReport/index","errorReport");
MenuInit.addMenu(menuLabel,pMenuReport,205, "EventLog","eventLog", "report/eventLog/index","eventlog");
MenuInit.addMenu(menuLabel,pMenuReport,206, "Tool Utilization","deviceSChart", "report/deviceSChart/index","deviceSChart");
//Help
MenuInit.addMenu(menuLabel,null,999, "Help","helps", "help/helps/index","help");
String apiName = smfApi.getApiName();
if(Strings.isNotBlank(apiName) && apiName.equals(menuLabel)){
menuInit.showMenu(apiName);
}
}
}
...@@ -409,4 +409,7 @@ smfcore.xray.countingHistory.xRayFile=\u56FE\u7247\u6587\u4EF6\u540D ...@@ -409,4 +409,7 @@ smfcore.xray.countingHistory.xRayFile=\u56FE\u7247\u6587\u4EF6\u540D
smfcore.xray.countingHistory.resultFile=\u7ED3\u679C\u6587\u4EF6\u540D smfcore.xray.countingHistory.resultFile=\u7ED3\u679C\u6587\u4EF6\u540D
smfcore.xray.countingHistory.uploadOk=\u662F\u5426\u4E0A\u4F20\u5B8C\u6210 smfcore.xray.countingHistory.uploadOk=\u662F\u5426\u4E0A\u4F20\u5B8C\u6210
smfcore.xray.countingHistory.countingTime=\u70B9\u6599\u65F6\u95F4 smfcore.xray.countingHistory.countingTime=\u70B9\u6599\u65F6\u95F4
smfcore.deviceSChart=Tool Utilization
\ No newline at end of file \ No newline at end of file
smfcore.deviceSChart=Tool Utilization
smfcore.ml5sInput=ML5S Input
smfcore.ml5sOutput=ML5S Ouput
smfcore.X800=X800
\ No newline at end of file \ No newline at end of file
...@@ -387,4 +387,7 @@ smfcore.xray.countingHistory.xRayFile=Image File Name ...@@ -387,4 +387,7 @@ smfcore.xray.countingHistory.xRayFile=Image File Name
smfcore.xray.countingHistory.resultFile=Result File Name smfcore.xray.countingHistory.resultFile=Result File Name
smfcore.xray.countingHistory.uploadOk=Upload Completed smfcore.xray.countingHistory.uploadOk=Upload Completed
smfcore.xray.countingHistory.countingTime=Counting Time smfcore.xray.countingHistory.countingTime=Counting Time
smfcore.deviceSChart=Tool Utilization
\ No newline at end of file \ No newline at end of file
smfcore.deviceSChart=Tool Utilization
smfcore.ml5sInput=ML5S Input
smfcore.ml5sOutput=ML5S Ouput
smfcore.X800=X800
\ No newline at end of file \ No newline at end of file
...@@ -382,4 +382,7 @@ smfcore.xray.countingHistory.xRayFile=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u540D ...@@ -382,4 +382,7 @@ smfcore.xray.countingHistory.xRayFile=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u540D
smfcore.xray.countingHistory.resultFile=\u7D50\u679C\u30D5\u30A1\u30A4\u30EB\u540D smfcore.xray.countingHistory.resultFile=\u7D50\u679C\u30D5\u30A1\u30A4\u30EB\u540D
smfcore.xray.countingHistory.uploadOk=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u5B8C\u4E86 smfcore.xray.countingHistory.uploadOk=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u5B8C\u4E86
smfcore.xray.countingHistory.countingTime=\u30AB\u30A6\u30F3\u30C8\u6642\u9593 smfcore.xray.countingHistory.countingTime=\u30AB\u30A6\u30F3\u30C8\u6642\u9593
smfcore.deviceSChart=Tool Utilization
\ No newline at end of file \ No newline at end of file
smfcore.deviceSChart=Tool Utilization
smfcore.ml5sInput=ML5S Input
smfcore.ml5sOutput=ML5S Ouput
smfcore.X800=X800
\ No newline at end of file \ No newline at end of file
...@@ -384,4 +384,7 @@ smfcore.xray.countingHistory.uploadOk=\u662F\u5426\u4E0A\u4F20\u5B8C\u6210 ...@@ -384,4 +384,7 @@ smfcore.xray.countingHistory.uploadOk=\u662F\u5426\u4E0A\u4F20\u5B8C\u6210
smfcore.xray.countingHistory.countingTime=\u70B9\u6599\u65F6\u95F4 smfcore.xray.countingHistory.countingTime=\u70B9\u6599\u65F6\u95F4
smfcore.common.createDate=\u521B\u5EFA\u65F6\u95F4 smfcore.common.createDate=\u521B\u5EFA\u65F6\u95F4
smfcore.common.updateDate=\u66F4\u65B0\u65F6\u95F4 smfcore.common.updateDate=\u66F4\u65B0\u65F6\u95F4
smfcore.deviceSChart=Tool Utilization
\ No newline at end of file \ No newline at end of file
smfcore.deviceSChart=Tool Utilization
smfcore.ml5sInput=ML5S Input
smfcore.ml5sOutput=ML5S Ouput
smfcore.X800=X800
\ No newline at end of file \ No newline at end of file
...@@ -385,4 +385,7 @@ smfcore.xray.countingHistory.xRayFile=\u5716\u7247\u6A94\u540D ...@@ -385,4 +385,7 @@ smfcore.xray.countingHistory.xRayFile=\u5716\u7247\u6A94\u540D
smfcore.xray.countingHistory.resultFile=\u7D50\u679C\u6A94\u540D smfcore.xray.countingHistory.resultFile=\u7D50\u679C\u6A94\u540D
smfcore.xray.countingHistory.uploadOk=\u662F\u5426\u4E0A\u50B3\u5B8C\u6210 smfcore.xray.countingHistory.uploadOk=\u662F\u5426\u4E0A\u50B3\u5B8C\u6210
smfcore.xray.countingHistory.countingTime=\u9EDE\u6599\u6642\u9593 smfcore.xray.countingHistory.countingTime=\u9EDE\u6599\u6642\u9593
smfcore.deviceSChart=Tool Utilization
\ No newline at end of file \ No newline at end of file
smfcore.deviceSChart=Tool Utilization
smfcore.ml5sInput=ML5S Input
smfcore.ml5sOutput=ML5S Ouput
smfcore.X800=X800
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!