Commit 00042f65 LN

loading 接口增加phase2B相关参数:MBR,REQ,GR,MCL

1 个父辈 216f6313
...@@ -25,6 +25,15 @@ public class InList extends BasePo implements Serializable { ...@@ -25,6 +25,15 @@ public class InList extends BasePo implements Serializable {
setSendEmail(sendEmail); setSendEmail(sendEmail);
} }
public void SetParam(String mode,int shelfNum,String reqId,String mbrId,String deliveryNote,String purchaseOrder,String operationId ){
this.setMode(mode);
this.setShelfNum(shelfNum);
this.setReqId(reqId);
this.setMbrId(mbrId);
this.setDeliveryNote(deliveryNote);
this.setPurchaseOrder(purchaseOrder);
this.setOperationId(operationId);
}
/** /**
* 入库单名称 * 入库单名称
*/ */
...@@ -61,6 +70,23 @@ public class InList extends BasePo implements Serializable { ...@@ -61,6 +70,23 @@ public class InList extends BasePo implements Serializable {
private String operationId=""; private String operationId="";
/**
* ReqId
*/
private String reqId="";
/**
* mbrId
*/
private String mbrId="";
/**
* Delivery Note ( Packaging Slip)(包装单)
*/
private String deliveryNote="";
/**
* STO # ( Purchase Order)(采购单号)
*/
private String purchaseOrder ;
public boolean isValidRfid(String rfid){ public boolean isValidRfid(String rfid){
if(rfidList.contains(rfid)){ if(rfidList.contains(rfid)){
return true; return true;
......
...@@ -61,10 +61,31 @@ public class LoadingController { ...@@ -61,10 +61,31 @@ public class LoadingController {
@Autowired @Autowired
private TaskService taskService; private TaskService taskService;
private String getParam(Map<String,Object> params, String key,String defValue) {
if(params==null){
return defValue;
}
Object value=params.get(key);
if(ObjectUtil.isNotNull(value)){
return value.toString();
}
return defValue;
}
private int getIntParam(Map<String,Object> params, String key,int defValue) {
if(params==null){
return defValue;
}
Object value=params.get(key);
if(ObjectUtil.isNotNull(value)){
return Integer.parseInt(value.toString());
}
return defValue;
}
@ApiOperation("lOADING页面获取列表数据") @ApiOperation("lOADING页面获取列表数据")
@GetMapping("/list") @GetMapping("/list")
@AnonymousAccess @AnonymousAccess
public ResultBean list(HttpServletRequest servletRequest ) { public ResultBean list(@RequestParam Map<String,Object> params ,HttpServletRequest servletRequest ) {
String mode=getParam(params,"mode",APIMODE.MATRET) ;
//判断是否验证 //判断是否验证
if(!MicronApi.isEnable()){ if(!MicronApi.isEnable()){
...@@ -74,8 +95,14 @@ public class LoadingController { ...@@ -74,8 +95,14 @@ public class LoadingController {
InList inList=loadingUtil.getInlist(); InList inList=loadingUtil.getInlist();
if(inList==null){ if(inList==null){
return ResultBean.newErrorResult(-1,"smfcore.micron.nodata","未找到信息"); return ResultBean.newErrorResult(-1,"smfcore.micron.nodata","未找到信息");
}else{ }else {
return ResultBean.newOkResult(getList(inList));
//判断mode是否相同
if (inList.getMode().equals(mode)) {
return ResultBean.newOkResult(getList(inList));
} else {
return ResultBean.newErrorResult(9, "smfcore.micron.otherModeNotEnd", inList.getMode()+" Loading Not End");
}
} }
} }
...@@ -118,12 +145,11 @@ public class LoadingController { ...@@ -118,12 +145,11 @@ public class LoadingController {
@GetMapping("/detial") @GetMapping("/detial")
@AnonymousAccess @AnonymousAccess
public ResultBean detial(@RequestParam Map<String,Object> params ) { public ResultBean detial(@RequestParam Map<String,Object> params ) {
String mode=getParam(params,"mode",APIMODE.MATRET) ;
//参数:mType 物料类型:pcb/shoebox/pizzaBox/reel/tray //参数:mType 物料类型:pcb/shoebox/pizzaBox/reel/tray
//参数:state 状态: success/xray/failure/ng //参数:state 状态: success/xray/failure/ng
String mType = params.get("mType").toString(); String mType = params.get("mType").toString();
String state = params.get("state").toString(); String state = params.get("state").toString();
List<MaterialDtialDto> dtos = new ArrayList<>(); List<MaterialDtialDto> dtos = new ArrayList<>();
if (MicronApi.Debug) { if (MicronApi.Debug) {
for (int i = 1; i <= 5; i++ for (int i = 1; i <= 5; i++
...@@ -139,6 +165,9 @@ public class LoadingController { ...@@ -139,6 +165,9 @@ public class LoadingController {
if (inList == null) { if (inList == null) {
return ResultBean.newErrorResult(-1, "smfcore.micron.nodata", "未找到信息"); return ResultBean.newErrorResult(-1, "smfcore.micron.nodata", "未找到信息");
} }
if(!inList.getMode().equals(mode)) {
return ResultBean.newErrorResult(9, "smfcore.micron.otherModeNotEnd", inList.getMode()+" Loading Not End");
}
for (InListItem item : for (InListItem item :
inList.getInListItems()) { inList.getInListItems()) {
if (item.getMType().equalsIgnoreCase(mType)) { if (item.getMType().equalsIgnoreCase(mType)) {
...@@ -187,68 +216,183 @@ public class LoadingController { ...@@ -187,68 +216,183 @@ public class LoadingController {
@ApiOperation("loading->入库按钮 输入参数后获取数据")
@ApiOperation("loading->ReturnMaterial 输入RFID后获取数据") @PostMapping("/submit")
@PostMapping("/returnMaterial")
@AnonymousAccess @AnonymousAccess
public ResultBean returnMaterial(@RequestBody Map<String,Object> params ) { public ResultBean submit(@RequestBody Map<String,Object> params ) {
// List<String> rfids = (List<String>) params;
String numStr = params.get("num").toString(); String mode = getParam(params, "mode", APIMODE.MATRET);
int shelfNum = Integer.MAX_VALUE;
String mbrId = "";
String reqId = "";
String deliveryNote = "";
String purchaseOrder = "";
// int reelNumber = 0;
if (mode.equals(APIMODE.MATRET)) {
shelfNum = getIntParam(params, "num", -1);
if (shelfNum == -1) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"Num"});
}
} else if (mode.equals(APIMODE.MBR)) {
mbrId = getParam(params, "mbrId", "");
if (ObjectUtil.isEmpty((mbrId))) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"MBR ID "});
}
} else if (mode.equals(APIMODE.REQ)) {
reqId = getParam(params, "reqId", "");
if (ObjectUtil.isEmpty((reqId))) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"REQ ID "});
}
} else if (mode.equals(APIMODE.GR)) {
// Delivery Note ( Packaging Slip)(包装单)
// STO # ( Purchase Order)(采购单号)
// 调用/sumbit后传入参数:mode 和 deliveryNote,purchaseOrder
deliveryNote = getParam(params, "deliveryNote", "");
if (ObjectUtil.isEmpty(deliveryNote)) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"Delivery Note"});
}
purchaseOrder = getParam(params, "purchaseOrder", "");
if (ObjectUtil.isEmpty(purchaseOrder)) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"purchaseOrder"});
}
} else if (mode.equals(APIMODE.MCL)) {
if (ObjectUtil.isEmpty((numStr))) {
throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"Num"});
} }
int num = Integer.valueOf(numStr);
log.info("returnMaterial: num= " + num); log.info("submit: mode=" + mode + ",shelfNum= " + shelfNum + ",mbrId=" + mbrId + ",reqId=" + reqId + ",deliveryNote=" + deliveryNote + ", purchaseOrder=" + purchaseOrder);
// String[] rfidArray=rfids.split(",");
InList inList = loadingUtil.getInlist(); InList inList = loadingUtil.getInlist();
if (inList == null) { if (inList == null) {
//判断是否已有operationID
LoadingInfo loadingInfo=dataCache.getCache(Constants.CACHE_LOADING);
if(loadingInfo==null||ObjectUtil.isEmpty(loadingInfo.getOperationId())) {
// 接口获取
String operId = MicronApi.Api011(mode, SecurityUtils.getCurrentUsername(), "");
if (ObjectUtil.isEmpty(operId)) {
return ResultBean.newErrorResult(-1, "smfcore.api.fail", "Api011获取数据失败", new String[]{"Api011"});
}
// 接口获取 MicronApi.ActionUpdate(operId, MicronApi.START);
String id = MicronApi.Api011(APIMODE.MATRET, SecurityUtils.getCurrentUsername(), ""); loadingInfo = new LoadingInfo(mode, operId, "", DateTime.now());
if (ObjectUtil.isEmpty(id)) { loadingInfo.inlistName = mode + "-" + operId + "-" + DateUtil.toDateString(loadingInfo.startTime);
return ResultBean.newErrorResult(-1,"smfcore.api.fail", "Api011获取数据失败",new String[]{"Api011"}); dataCache.updateCache(Constants.CACHE_LOADING, loadingInfo);
log.info("submit: mode=" + mode + ",获取到 OperationId=" + operId);
}
else{
log.info("submit: mode=" + mode + ",已有 OperationId="+loadingInfo.getOperationId());
} }
MicronApi.ActionUpdate(id,MicronApi.START);
LoadingInfo loadingInfo = new LoadingInfo(APIMODE.MATRET, id, "", DateTime.now());
loadingInfo.inlistName = id + "-" + DateUtil.toDateString(loadingInfo.startTime);
dataCache.updateCache(Constants.CACHE_LOADING, loadingInfo);
// int count = rfids.size();
// List<String> list = new ArrayList<>(Arrays.asList(rfidArray));
inList = new InList(loadingInfo.inlistName, INLIST_STATUS.WAIT, new ArrayList<>(), System.currentTimeMillis(), false);
inList.setMode(loadingInfo.mode); String operId=loadingInfo.getOperationId();
inList.setShelfNum(num);
inList.setOperationId(loadingInfo.getOperationId()); if(APIMODE.MBR.equals(mode)){
boolean result= MicronApi.Api101(mbrId,operId,"");
if(!result) {
return ResultBean.newErrorResult(-1, "smfcore.api.fail", "Api101获取数据失败", new String[]{"Api101"});
}
}else if(APIMODE.REQ.equals(mode)){
boolean result= MicronApi.Api102(reqId,operId );
if(!result) {
return ResultBean.newErrorResult(-1, "smfcore.api.fail", "Api101获取数据失败", new String[]{"Api101"});
}
}else if(APIMODE.GR.equals(mode)) {
boolean result = MicronApi.Api103(deliveryNote, purchaseOrder, operId,"");
if (!result) {
return ResultBean.newErrorResult(-1, "smfcore.api.fail", "Api103获取数据失败", new String[]{"Api103"});
}
}
inList = new InList(loadingInfo.inlistName, INLIST_STATUS.WAIT, new ArrayList<>(), System.currentTimeMillis(), false);
inList.SetParam(loadingInfo.mode,shelfNum,reqId,mbrId,deliveryNote,purchaseOrder,loadingInfo.getOperationId());
inList = inListManager.createWithItems(inList); inList = inListManager.createWithItems(inList);
inListCache.addInListToMap(inList); inListCache.addInListToMap(inList);
log.info("submit:Create Inlist OK. " + inList.getName() + ", mode=" + mode + ",shelfNum= " + shelfNum + ",mbrId=" + mbrId + ",reqId=" + reqId + ",deliveryNote=" + deliveryNote + ", purchaseOrder=" + purchaseOrder);
return ResultBean.newOkResult(getList(inList)); return ResultBean.newOkResult(getList(inList));
} else { } else {
return ResultBean.newOkResult(getList(inList)); return ResultBean.newOkResult(getList(inList));
} }
} }
@ApiOperation("loading->ReturnMaterial 输入RFID后获取数据")
@PostMapping("/returnMaterial")
@AnonymousAccess
public ResultBean returnMaterial(@RequestBody Map<String,Object> params ) {
return submit(params);
// List<String> rfids = (List<String>) params;
// String numStr = params.get("num").toString();
//
// if (ObjectUtil.isEmpty((numStr))) {
// throw new ValidateException("smfcore.valueCanotNull", "{0}不能为空", new String[]{"Num"});
// }
//
// int num = Integer.valueOf(numStr);
//
// log.info("returnMaterial: num= " + num);
//// String[] rfidArray=rfids.split(",");
// InList inList = loadingUtil.getInlist();
// String mode=APIMODE.MATRET;
// if (inList == null) {
//
// LoadingInfo loadingInfo=dataCache.getCache(Constants.CACHE_LOADING);
// if(loadingInfo==null||ObjectUtil.isEmpty(loadingInfo.getOperationId())) {
// // 接口获取
// String operId = MicronApi.Api011(mode, SecurityUtils.getCurrentUsername(), "");
// if (ObjectUtil.isEmpty(operId)) {
// return ResultBean.newErrorResult(-1, "smfcore.api.fail", "Api011获取数据失败", new String[]{"Api011"});
// }
//
// MicronApi.ActionUpdate(operId, MicronApi.START);
// loadingInfo = new LoadingInfo(mode, operId, "", DateTime.now());
// loadingInfo.inlistName = mode + "-" + operId + "-" + DateUtil.toDateString(loadingInfo.startTime);
// dataCache.updateCache(Constants.CACHE_LOADING, loadingInfo);
// log.info("submit: mode=" + mode + ",获取到 OperationId=" + operId);
// }
// else{
// log.info("submit: mode=" + mode + ",已有 OperationId="+loadingInfo.getOperationId());
// }
////
//
//// int count = rfids.size();
//// List<String> list = new ArrayList<>(Arrays.asList(rfidArray));
// inList = new InList(loadingInfo.inlistName, INLIST_STATUS.WAIT, new ArrayList<>(), System.currentTimeMillis(), false);
//
// inList.setMode(loadingInfo.mode);
// inList.setShelfNum(num);
// inList.setOperationId(loadingInfo.getOperationId());
//
// inList = inListManager.createWithItems(inList);
// inListCache.addInListToMap(inList);
// return ResultBean.newOkResult(getList(inList));
// } else {
// return ResultBean.newOkResult(getList(inList));
//
// }
}
@ApiOperation("Retry") @ApiOperation("Retry")
@PostMapping("/Retry") @PostMapping("/Retry")
@AnonymousAccess @AnonymousAccess
public ResultBean retry() { public ResultBean retry(@RequestBody(required = false) Map<String,Object> params ) {
String mode = getParam(params, "mode", APIMODE.MATRET);
// String mode=APIMODE.MATRET;
InList inList=loadingUtil.getInlist(); InList inList = loadingUtil.getInlist();
if(inList==null){ if (inList == null) {
return ResultBean.newErrorResult(-1,"smfcore.micron.operationFailure","操作失败"); return ResultBean.newErrorResult(-1, "smfcore.micron.operationFailure", "操作失败");
} else { } else {
if (!inList.getMode().equals(mode)) {
return ResultBean.newErrorResult(-1, "smfcore.micron.modeError", "参数错误," + mode + " Loading 还未完成");
}
//重试,重发指令 //重试,重发指令
log.info("重试:"+inList.getMode()+","+inList.getOperationId()+" " +inList.getName()); log.info("重试:" + inList.getMode() + "," + inList.getOperationId() + " " + inList.getName());
loadingUtil.Retry(); loadingUtil.Retry();
...@@ -259,12 +403,16 @@ public class LoadingController { ...@@ -259,12 +403,16 @@ public class LoadingController {
@ApiOperation("Abort") @ApiOperation("Abort")
@PostMapping("/Abort") @PostMapping("/Abort")
@AnonymousAccess @AnonymousAccess
public ResultBean abort() { public ResultBean abort(@RequestBody(required = false) Map<String,Object> params ) {
String mode = getParam(params, "mode", APIMODE.MATRET);
// String mode=APIMODE.MATRET;
InList inList=loadingUtil.getInlist(); InList inList=loadingUtil.getInlist();
if(inList==null){ if(inList==null){
return ResultBean.newErrorResult(-1,"smfcore.micron.operationFailure","操作失败"); return ResultBean.newErrorResult(-1,"smfcore.micron.operationFailure","操作失败");
} else { } else {
if (!inList.getMode().equals(mode)) {
return ResultBean.newErrorResult(-1, "smfcore.micron.modeError", "参数错误," + mode + " Loading 还未完成");
}
//结束入库 //结束入库
for (InListItem item : inList.getInListItems()) { for (InListItem item : inList.getInListItems()) {
if (item.getState() == INITEM_STATUS.PutIn) { if (item.getState() == INITEM_STATUS.PutIn) {
...@@ -301,18 +449,29 @@ public class LoadingController { ...@@ -301,18 +449,29 @@ public class LoadingController {
@ApiOperation("Finish") @ApiOperation("Finish")
@RequestMapping("/finish") @RequestMapping("/finish")
@AnonymousAccess @AnonymousAccess
public ResultBean finish() { public ResultBean finish(@RequestBody(required = false) Map<String,Object> params ) {
String mode = getParam(params, "mode", APIMODE.MATRET);
// String mode=APIMODE.MATRET;
InList inList = loadingUtil.getInlist(); InList inList = loadingUtil.getInlist();
if (inList == null) { if (inList == null) {
return ResultBean.newErrorResult(-1,"smfcore.micron.operationFailure","操作失败"); return ResultBean.newErrorResult(-1,"smfcore.micron.operationFailure","操作失败");
} else { } else {
if (!inList.getMode().equals(mode)) {
return ResultBean.newErrorResult(-1, "smfcore.micron.modeError", "参数错误," + mode + " Loading 还未完成");
}
if (inList.getStatus() == INLIST_STATUS.OK){ if (inList.getStatus() == INLIST_STATUS.OK){
log.info(" 入库单[" + inList.getName() + "]:任务已全部完成,清空当前loadinginfo,更改action=COMPLETE"); log.info(" 入库单[" + inList.getName() + "]:任务已全部完成,清空当前loadinginfo,更改action=COMPLETE");
MicronApi.ActionUpdate(inList.getOperationId(),MicronApi.COMPLETED); MicronApi.ActionUpdate(inList.getOperationId(),MicronApi.COMPLETED);
dataCache.updateCache(Constants.CACHE_LOADING, new LoadingInfo()); dataCache.updateCache(Constants.CACHE_LOADING, new LoadingInfo());
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
return ResultBean.newErrorResult(-1,"smfcore.inlist.noEnd","入库单[{0}]未完成",new String[]{}); if(inList.getMode().equals(APIMODE.MATRET)){
return ResultBean.newErrorResult(-1,"smfcore.inlist.noEnd","入库单[{0}]未完成",new String[]{inList.getName()});
}else{
//除matret,其他的都是手动结束
return ResultBean.newOkResult("");
}
} }
} }
......
...@@ -59,32 +59,32 @@ public class LoadingUtil { ...@@ -59,32 +59,32 @@ public class LoadingUtil {
} }
return null; return null;
} }
//获取库位号成功,增加一个正在入库的 // //获取库位号成功,增加一个正在入库的
public void AddErrorItem(String rfid, Barcode barcode, Integer error,String message) { // public void AddErrorItem(String rfid, Barcode barcode, Integer error,String message) {
InList inList = getInlist(); // InList inList = getInlist();
//
if (inList == null) { // if (inList == null) {
return; // return;
} // }
inList.addRfid(rfid); // inList.addRfid(rfid);
inList.setStatus(INLIST_STATUS.ABNORMAL); // inList.setStatus(INLIST_STATUS.ABNORMAL);
//
String mtype = MicronDataCache.GetReelType(barcode.getPlateSize(), barcode.getHeight()); // String mtype = MicronDataCache.GetReelType(barcode.getPlateSize(), barcode.getHeight());
//
log.info("为入库单[" + inList.getName() + "]增加一条验证失败信息:barcode[" + barcode.getBarcode() + "],mtype[" + mtype + "],pn[" + barcode.getPartNumber() + "],rfid[" + rfid + "],s[" + INITEM_STATUS.API001NG + "],ngMsg["+error+":"+message+"]"); // log.info("为入库单[" + inList.getName() + "]增加一条验证失败信息:barcode[" + barcode.getBarcode() + "],mtype[" + mtype + "],pn[" + barcode.getPartNumber() + "],rfid[" + rfid + "],s[" + INITEM_STATUS.API001NG + "],ngMsg["+error+":"+message+"]");
//
InListItem item = InListItem.newMItem(inList.getName(), barcode, rfid, "", INITEM_STATUS.API001NG, mtype); // InListItem item = InListItem.newMItem(inList.getName(), barcode, rfid, "", INITEM_STATUS.API001NG, mtype);
if (inList.getEndRfidList() != null && inList.getEndRfidList().contains(rfid)) { // if (inList.getEndRfidList() != null && inList.getEndRfidList().contains(rfid)) {
item.setRfidEnd(true); // item.setRfidEnd(true);
} // }
item.setNgMsg(error+":"+message); // item.setNgMsg(error+":"+message);
item = inListItemManager.save(item); // item = inListItemManager.save(item);
List<InListItem> items = inList.getInListItems(); // List<InListItem> items = inList.getInListItems();
items.add(item); // items.add(item);
inList.setInListItems(items); // inList.setInListItems(items);
inListManager.save(inList); // inListManager.save(inList);
inListCache.addInListToMap(inList); // inListCache.addInListToMap(inList);
} // }
//获取库位号成功,增加一个正在入库的 //获取库位号成功,增加一个正在入库的
public void AddInListItem(String rfid, Barcode barcode, String posName, String state, Boolean toXray) { public void AddInListItem(String rfid, Barcode barcode, String posName, String state, Boolean toXray) {
......
...@@ -10,6 +10,7 @@ micron: ...@@ -10,6 +10,7 @@ micron:
api_name_009: material/status api_name_009: material/status
api_name_010: material/track-out api_name_010: material/track-out
api_name_011: operation?mode={0}&username={1}&source={2} api_name_011: operation?mode={0}&username={1}&source={2}
api_name_012: operation/{0}
api_name_101: operation/validation/mbr?id={0}&operationId={1}&skipSap={2} api_name_101: operation/validation/mbr?id={0}&operationId={1}&skipSap={2}
api_name_102: operation/validation/req?id={0}&operationId={1} api_name_102: operation/validation/req?id={0}&operationId={1}
api_name_103: operation/validation/gr?purchaseOrder={0}&packagingSlip={1}&operationId={2}&skipSap={3} api_name_103: operation/validation/gr?purchaseOrder={0}&packagingSlip={1}&operationId={2}&skipSap={3}
...@@ -35,6 +36,7 @@ spring: ...@@ -35,6 +36,7 @@ spring:
#备份数据库配置 #备份数据库配置
backup-mongodb: backup-mongodb:
# host: 10.74.40.156
host: 172.16.10.19 host: 172.16.10.19
port: 27017 port: 27017
database: backup_smf database: backup_smf
......
...@@ -362,6 +362,7 @@ smfcore.error.barcode.hastask=\u6761\u7801[0]\u5DF2\u6709\u5165\u5E93\u4EFB\u52A ...@@ -362,6 +362,7 @@ smfcore.error.barcode.hastask=\u6761\u7801[0]\u5DF2\u6709\u5165\u5E93\u4EFB\u52A
smfcore.error.barcode.hasOutTask=\u5E8F\u5217\u53F7[0] \u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1\uFF0C\u51FA\u5E93\u524D\u4E0D\u5F97\u5165\u5E93\u76F8\u540C\u5E8F\u5217\u53F7\u7269\u6599 smfcore.error.barcode.hasOutTask=\u5E8F\u5217\u53F7[0] \u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1\uFF0C\u51FA\u5E93\u524D\u4E0D\u5F97\u5165\u5E93\u76F8\u540C\u5E8F\u5217\u53F7\u7269\u6599
smfcore.error.noRetryReel=No material found to retry smfcore.error.noRetryReel=No material found to retry
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u5931\u8D25\uFF1A\u8FD8\u6709\u5165\u5E93\u4EFB\u52A1\u672A\u5B8C\u6210 smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u5931\u8D25\uFF1A\u8FD8\u6709\u5165\u5E93\u4EFB\u52A1\u672A\u5B8C\u6210
smfcore.micron.modeError=\u53C2\u6570\u9519\u8BEF {0} \u5165\u5E93\u8FD8\u672A\u5B8C\u6210
#smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0} #smfclient.nlp.onlyOneTray=\u4E0D\u53EF\u540C\u65F6\u653E\u5165\u591A\u76D8\u7269\u6599:{0}
#smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1} #smfclient.nlp.cannotFindPos={0}\u672A\u627E\u5230\u5E93\u4F4D:{1}
#smfclient.nlp.inputOk={0}\u5165\u5E93\u5230{1}\u6210\u529F #smfclient.nlp.inputOk={0}\u5165\u5E93\u5230{1}\u6210\u529F
......
...@@ -360,4 +360,5 @@ smfcore.selfAudit.hasOutTask=The location [{0}] already has a release task ...@@ -360,4 +360,5 @@ smfcore.selfAudit.hasOutTask=The location [{0}] already has a release task
smfcore.error.barcode.hastask=Serial No.(S)[0] already have storage task smfcore.error.barcode.hastask=Serial No.(S)[0] already have storage task
smfcore.error.barcode.hasOutTask=Serial No.(S)[0] already have retrieval task, cannot store same Serial No. material before retrieval finish smfcore.error.barcode.hasOutTask=Serial No.(S)[0] already have retrieval task, cannot store same Serial No. material before retrieval finish
smfcore.error.noRetryReel=No material found to retry smfcore.error.noRetryReel=No material found to retry
smfcore.micron.inlistCannotAbort=Operation failed: there are still inbound tasks to be completed
\ No newline at end of file \ No newline at end of file
smfcore.micron.inlistCannotAbort=Operation failed: there are still inbound tasks to be completed
smfcore.micron.modeError=Parameter error. {0} Incoming not finished.
\ No newline at end of file \ No newline at end of file
...@@ -355,4 +355,5 @@ smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52 ...@@ -355,4 +355,5 @@ smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52
smfcore.error.barcode.hastask=Serial No.(S)[0] already have storage task smfcore.error.barcode.hastask=Serial No.(S)[0] already have storage task
smfcore.error.barcode.hasOutTask=Serial No.(S)[0] already have retrieval task, cannot store same Serial No. material before retrieval finish smfcore.error.barcode.hasOutTask=Serial No.(S)[0] already have retrieval task, cannot store same Serial No. material before retrieval finish
smfcore.error.noRetryReel=No material found to retry smfcore.error.noRetryReel=No material found to retry
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\u5B8C\u4E86\u3059\u3079\u304D\u53D7\u4FE1\u30BF\u30B9\u30AF\u304C\u6B8B\u3063\u3066\u3044\u307E\u3059
\ No newline at end of file \ No newline at end of file
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\uFF1A\u5B8C\u4E86\u3059\u3079\u304D\u53D7\u4FE1\u30BF\u30B9\u30AF\u304C\u6B8B\u3063\u3066\u3044\u307E\u3059
smfcore.micron.modeError=\u53C2\u6570\u9519\u8BEF {0} Loading \u8FD8\u672A\u5B8C\u6210
\ No newline at end of file \ No newline at end of file
...@@ -355,4 +355,5 @@ smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52 ...@@ -355,4 +355,5 @@ smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52
smfcore.error.barcode.hastask=Serial No.(S)[0] already have storage task smfcore.error.barcode.hastask=Serial No.(S)[0] already have storage task
smfcore.error.barcode.hasOutTask=\u5E8F\u5217\u53F7[0] \u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1\uFF0C\u51FA\u5E93\u524D\u4E0D\u5F97\u5165\u5E93\u76F8\u540C\u5E8F\u5217\u53F7\u7269\u6599 smfcore.error.barcode.hasOutTask=\u5E8F\u5217\u53F7[0] \u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1\uFF0C\u51FA\u5E93\u524D\u4E0D\u5F97\u5165\u5E93\u76F8\u540C\u5E8F\u5217\u53F7\u7269\u6599
smfcore.error.noRetryReel=\u6CA1\u6709\u53EF\u4EE5\u91CD\u8BD5\u7684\u7269\u6599 smfcore.error.noRetryReel=\u6CA1\u6709\u53EF\u4EE5\u91CD\u8BD5\u7684\u7269\u6599
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u5931\u8D25\uFF1A\u8FD8\u6709\u5165\u5E93\u4EFB\u52A1\u672A\u5B8C\u6210
\ No newline at end of file \ No newline at end of file
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u5931\u8D25\uFF1A\u8FD8\u6709\u5165\u5E93\u4EFB\u52A1\u672A\u5B8C\u6210
smfcore.micron.modeError=\u53C2\u6570\u9519\u8BEF {0} \u5165\u5E93\u8FD8\u672A\u5B8C\u6210
\ No newline at end of file \ No newline at end of file
...@@ -356,4 +356,5 @@ smfcore.paretoChart=\u5E15\u7D2F\u6258\u5716 ...@@ -356,4 +356,5 @@ smfcore.paretoChart=\u5E15\u7D2F\u6258\u5716
smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1 smfcore.selfAudit.hasOutTask=\u5E93\u4F4D[{0}]\u5DF2\u6709\u51FA\u5E93\u4EFB\u52A1
smfcore.error.barcode.hasOutTask=\u5E8F\u5217\u865F[0] \u5DF2\u6709\u51FA\u5EAB\u4EFB\u52D9\uFF0C\u51FA\u5EAB\u524D\u4E0D\u5F97\u5165\u5EAB\u76F8\u540C\u5E8F\u5217\u865F\u7269\u6599 smfcore.error.barcode.hasOutTask=\u5E8F\u5217\u865F[0] \u5DF2\u6709\u51FA\u5EAB\u4EFB\u52D9\uFF0C\u51FA\u5EAB\u524D\u4E0D\u5F97\u5165\u5EAB\u76F8\u540C\u5E8F\u5217\u865F\u7269\u6599
smfcore.error.noRetryReel=\u6C92\u6709\u53EF\u4EE5\u91CD\u8A66\u7684\u7269\u6599 smfcore.error.noRetryReel=\u6C92\u6709\u53EF\u4EE5\u91CD\u8A66\u7684\u7269\u6599
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u5931\u8D25\uFF1A\u8FD8\u6709\u5165\u5E93\u4EFB\u52A1\u672A\u5B8C\u6210
\ No newline at end of file \ No newline at end of file
smfcore.micron.inlistCannotAbort=\u64CD\u4F5C\u5931\u8D25\uFF1A\u8FD8\u6709\u5165\u5E93\u4EFB\u52A1\u672A\u5B8C\u6210
smfcore.micron.modeError=\u53C2\u6570\u9519\u8BEF {0} \u5165\u5E93\u8FD8\u672A\u5B8C\u6210
\ No newline at end of file \ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!