Commit 09ab4378 孙克

首盘料增加是否有未解绑料架判断逻辑

1 个父辈 ad61c551
...@@ -695,10 +695,49 @@ public class QisdaApi { ...@@ -695,10 +695,49 @@ public class QisdaApi {
} }
} }
/**
* 检查补料是是否有未解绑料架
*/
public static String GetSerialData(String line, String hserial){ public static String GetSerialData(String line, String hserial){
return GetSerialData(line,hserial,false); return GetSerialData(line,hserial,false);
} }
/** /**
* 检查首盘是是否有未解绑料架
*/
public static String ChecklfContinuousSo(String line, String hserial){
return ChecklfContinuousSo(line,hserial,false);
}
/**
* 检查首盘料架是否解绑 [{"data":[{"Serial":"58890","VehicleID":"D15","Status":""},{"Serial":"58890","VehicleID":"D44","Status":""},{"Serial":"58890","VehicleID":"D83","Status":""},{"Serial":"58890","VehicleID":"D90","Status":""},{"Serial":"58890","VehicleID":"D98","Status":""}]}]
*/
public static String ChecklfContinuousSo(String line, String hserial, boolean showLog){
if(DataCache.isProductionFor(DataCache.CUSTOMER.DEBUG)){
log.info("程序调试阶段,暂不处理,调试完成后更改PRO");
return "";
}
String url = "http://10.85.71.25:8080/ESMTCommonInterface/CommonService.asmx/CheckIfContinuousSo";
Map<String,Object> paramMap = new HashMap<String,Object>();
paramMap.put("line",line);
paramMap.put("hserial",hserial);
try {
String result = HttpHelper.postParam(url,paramMap);
if(showLog){
log.info("从Qisda检查工单["+hserial+"]料架是否解绑["+line+"](GetSerialData)返回:" + result);
}
if(result.contains("VehicleID")){
return result;
}
if(result.toLowerCase().contains("wait")){
return result;
}
return "";
} catch (Exception e) {
log.error("从Qisda检查工单料架是否解绑"+hserial+"["+line+"])接口(GetSerialData)出错",e);
return "检查出错:" + e.getMessage();
}
}
/**
* 检查工单料架是否解绑 [{"data":[{"Serial":"58890","VehicleID":"D15","Status":""},{"Serial":"58890","VehicleID":"D44","Status":""},{"Serial":"58890","VehicleID":"D83","Status":""},{"Serial":"58890","VehicleID":"D90","Status":""},{"Serial":"58890","VehicleID":"D98","Status":""}]}] * 检查工单料架是否解绑 [{"data":[{"Serial":"58890","VehicleID":"D15","Status":""},{"Serial":"58890","VehicleID":"D44","Status":""},{"Serial":"58890","VehicleID":"D83","Status":""},{"Serial":"58890","VehicleID":"D90","Status":""},{"Serial":"58890","VehicleID":"D98","Status":""}]}]
*/ */
public static String GetSerialData(String line, String hserial, boolean showLog){ public static String GetSerialData(String line, String hserial, boolean showLog){
......
...@@ -107,30 +107,38 @@ public class OutInfoCache { ...@@ -107,30 +107,38 @@ public class OutInfoCache {
//寻找未执行过的到达建议时间和必须出库时间的工单料(首盘或补料) //寻找未执行过的到达建议时间和必须出库时间的工单料(首盘或补料)
if(unEndOutInfo.isNew()){ if(unEndOutInfo.isNew()){
String oldBindShelfInfo = unEndOutInfo.getLineBindShelfInfo(); String oldBindShelfInfo = unEndOutInfo.getLineBindShelfInfo();
//只检查有未解绑料架的补料需求单 //只检查有未解绑料架的需求单
if(Strings.isNotBlank(oldBindShelfInfo) && unEndOutInfo.isTailAction()){ if(Strings.isNotBlank(oldBindShelfInfo)){
long firstExecuteTime = unEndOutInfo.getFirstExecuteTime(); if(unEndOutInfo.isTailAction() || unEndOutInfo.isFirstReelAction()){
if(firstExecuteTime <= 0){ long firstExecuteTime = unEndOutInfo.getFirstExecuteTime();
//未执行出库的 if(firstExecuteTime <= 0){
String newBindShelfInfo = QisdaApi.GetSerialData(unEndOutInfo.getLine(),unEndOutInfo.gethSerial()); //未执行出库的
if(!newBindShelfInfo.toLowerCase().contains("wait")){ String newBindShelfInfo = "";
//需要进行等待,直接返回 if(unEndOutInfo.isTailAction()){
int shelfCountToLine = shelfCountToLine(unEndOutInfo.getSoseq(),newBindShelfInfo); newBindShelfInfo = QisdaApi.GetSerialData(unEndOutInfo.getLine(),unEndOutInfo.gethSerial());
if(unEndOutInfo.isPreTailAction() || unEndOutInfo.isTailAction()){ }else if(unEndOutInfo.isFirstReelAction()){
//补料,检查是否是同一个工单未解绑的料架 newBindShelfInfo = QisdaApi.ChecklfContinuousSo(unEndOutInfo.getLine(),unEndOutInfo.gethSerial());
if(shelfCountToLine > 0){ }
//对应产线可放料架大于0,可以进行出库" if(!newBindShelfInfo.toLowerCase().contains("wait")){
newBindShelfInfo = ""; //需要进行等待,直接返回
int shelfCountToLine = shelfCountToLine(unEndOutInfo.getSoseq(),newBindShelfInfo);
if(unEndOutInfo.isPreTailAction() || unEndOutInfo.isTailAction()){
//补料,检查是否是同一个工单未解绑的料架
if(shelfCountToLine > 0){
//对应产线可放料架大于0,可以进行出库"
newBindShelfInfo = "";
}
} }
} }
} unEndOutInfo.setLineBindShelfInfo(newBindShelfInfo);
unEndOutInfo.setLineBindShelfInfo(newBindShelfInfo); outInfoMap.put(unEndOutInfo.gethSerial(), unEndOutInfo);
outInfoMap.put(unEndOutInfo.gethSerial(), unEndOutInfo); if(!newBindShelfInfo.equals(oldBindShelfInfo)){
if(!newBindShelfInfo.equals(oldBindShelfInfo)){ log.info("需求单["+unEndOutInfo.gethSerial()+"]产线有未解绑料架["+newBindShelfInfo+"]需要进行等待");
log.info("需求单["+unEndOutInfo.gethSerial()+"]产线有未解绑料架["+newBindShelfInfo+"]需要进行等待"); }
} }
} }
} }
} }
} }
}catch (Exception e){ }catch (Exception e){
...@@ -205,7 +213,11 @@ public class OutInfoCache { ...@@ -205,7 +213,11 @@ public class OutInfoCache {
OutInfo outInfoToNotify = findExecuteOrderHSerial(cachedOutInfos, excludeSerialList); OutInfo outInfoToNotify = findExecuteOrderHSerial(cachedOutInfos, excludeSerialList);
if(outInfoToNotify != null){ if(outInfoToNotify != null){
//通知Qisda进行提醒产线人员解绑 //通知Qisda进行提醒产线人员解绑
QisdaApi.GetSerialData(outInfoToNotify.getLine(),outInfoToNotify.gethSerial()); if(outInfoToNotify.isFirstReelAction()){
QisdaApi.ChecklfContinuousSo(outInfoToNotify.getLine(),outInfoToNotify.gethSerial());
}else{
QisdaApi.GetSerialData(outInfoToNotify.getLine(),outInfoToNotify.gethSerial());
}
} }
OutInfo outInfoToExecute = null; OutInfo outInfoToExecute = null;
...@@ -217,6 +229,8 @@ public class OutInfoCache { ...@@ -217,6 +229,8 @@ public class OutInfoCache {
String lineHasBindShelf = ""; String lineHasBindShelf = "";
if(firstOutInfoToExecute.isTailAction()){ if(firstOutInfoToExecute.isTailAction()){
lineHasBindShelf = QisdaApi.GetSerialData(firstOutInfoToExecute.getLine(),firstOutInfoToExecute.gethSerial(),true); lineHasBindShelf = QisdaApi.GetSerialData(firstOutInfoToExecute.getLine(),firstOutInfoToExecute.gethSerial(),true);
}else if(firstOutInfoToExecute.isFirstReelAction()){
lineHasBindShelf = QisdaApi.ChecklfContinuousSo(firstOutInfoToExecute.getLine(),firstOutInfoToExecute.gethSerial(),true);
} }
firstOutInfoToExecute.setLineBindShelfInfo(lineHasBindShelf); firstOutInfoToExecute.setLineBindShelfInfo(lineHasBindShelf);
...@@ -241,17 +255,17 @@ public class OutInfoCache { ...@@ -241,17 +255,17 @@ public class OutInfoCache {
return; return;
}else{ }else{
int shelfCountToLine = shelfCountToLine(firstOutInfoToExecute.getSoseq(),lineHasBindShelf); int shelfCountToLine = shelfCountToLine(firstOutInfoToExecute.getSoseq(),lineHasBindShelf);
if(firstOutInfoToExecute.isPreTailAction() || firstOutInfoToExecute.isTailAction()){ if(firstOutInfoToExecute.isPreTailAction() || firstOutInfoToExecute.isTailAction() || firstOutInfoToExecute.isFirstReelAction()){
//补料,检查是否是同一个工单未解绑的料架 //补料,检查是否是同一个工单未解绑的料架
//boolean preTailCanOut = isPreTailCanOut(firstOutInfoToExecute.getSoseq(),lineHasBindShelf); //boolean preTailCanOut = isPreTailCanOut(firstOutInfoToExecute.getSoseq(),lineHasBindShelf);
if(shelfCountToLine > 0){ if(shelfCountToLine > 0){
log.info("补料需求单["+firstOutInfoToExecute.gethSerial()+"]对应产线可放料架["+shelfCountToLine+"],可以进行出库:"+lineHasBindShelf); log.info("需求单["+firstOutInfoToExecute.gethSerial()+"]对应产线可放料架["+shelfCountToLine+"],可以进行出库:"+lineHasBindShelf);
outInfoToExecute = firstOutInfoToExecute; outInfoToExecute = firstOutInfoToExecute;
firstOutInfoToExecute.setLineBindShelfInfo(""); firstOutInfoToExecute.setLineBindShelfInfo("");
outInfoMap.put(firstOutInfoToExecute.gethSerial(), firstOutInfoToExecute); outInfoMap.put(firstOutInfoToExecute.gethSerial(), firstOutInfoToExecute);
break; break;
}else{ }else{
log.info("补料需求单["+firstOutInfoToExecute.gethSerial()+"]对应产线可放料架["+shelfCountToLine+"],暂不进行出库"); log.info("需求单["+firstOutInfoToExecute.gethSerial()+"]对应产线可放料架["+shelfCountToLine+"],暂不进行出库");
} }
} }
if(!oldBindShelf.equals(lineHasBindShelf)){ if(!oldBindShelf.equals(lineHasBindShelf)){
......
...@@ -597,10 +597,11 @@ public class QisdaDeviceController extends BaseController { ...@@ -597,10 +597,11 @@ public class QisdaDeviceController extends BaseController {
if(rfid == null){ if(rfid == null){
rfid = ""; rfid = "";
} }
ShelfInfo shelfInfo = InquiryShelfBean.findSameShelf(InquiryShelfBean.URGENT_SHELF_MAP_KEY,rfid); ShelfInfo shelfInfo = InquiryShelfBean.findShelf(rfid);
if(shelfInfo == null){ // ShelfInfo shelfInfo = InquiryShelfBean.findSameShelf(InquiryShelfBean.URGENT_SHELF_MAP_KEY,rfid);
shelfInfo = InquiryShelfBean.findSameShelf(InquiryShelfBean.CUT_SHELF_MAP_KEY,rfid); // if(shelfInfo == null){
} // shelfInfo = InquiryShelfBean.findSameShelf(InquiryShelfBean.CUT_SHELF_MAP_KEY,rfid);
// }
String tempRfid = ""; String tempRfid = "";
if(shelfInfo != null){ if(shelfInfo != null){
tempRfid = shelfInfo.tempRfid(); tempRfid = shelfInfo.tempRfid();
......
...@@ -12,6 +12,41 @@ ...@@ -12,6 +12,41 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<ul class="timeline"> <ul class="timeline">
<li class="timeline-yellow">
<div class="timeline-time">
<span class="date">2023</span>
<span class="time">04-14</span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2023041415</h2>
<div class="timeline-content">
<ul>
<li>首盘料增加是否有未解绑料架判断逻辑,接口地址为http://10.85.71.25:8080/ESMTCommonlnterface/CommonService.asmx?op=ChecklfContinuousSo</li>
</ul>
</div>
</div>
</li>
<li class="timeline-grey">
<div class="timeline-time">
<span class="date">2023</span>
<span class="time">04-06</span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2023040613</h2>
<div class="timeline-content">
<ul>
修改findTempRfid接口逻辑
</ul>
</div>
</div>
</li>
<li class="timeline-purple"> <li class="timeline-purple">
<div class="timeline-time"> <div class="timeline-time">
<span class="date">2023</span> <span class="date">2023</span>
......
...@@ -239,7 +239,7 @@ ...@@ -239,7 +239,7 @@
<div class="page-footer-inner"> <div class="page-footer-inner">
2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX</a> 2016&copy; <a href="${ctx}/updateHistory.html">SMD BOX</a>
</div> </div>
<span class="right" style="color: #a3a3a3;">Version: V2023040310</span> <span class="right" style="color: #a3a3a3;">Version: V2023041415</span>
<div class="scroll-to-top"> <div class="scroll-to-top">
<i class="icon-arrow-up"></i> <i class="icon-arrow-up"></i>
</div> </div>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!