Commit 40272ac3 sunke

增加查询托盘状态接口

去除查询禁用托盘接口
1 个父辈 22306c42
package com.myproject.bean.qisda;
import java.util.Date;
/**
* @author sunke
* @date 2023/2/1 2:28 PM
*/
public class TrayInfo {
/**
* 托盘号
*/
private String trayId;
/**
* 更新时间,如果托盘已禁用, 那么时间为禁用时间
*/
private String date;
/**
* 屏蔽位置, 如果未屏蔽,值为空
*/
private String disabledLoc = "";
public String getTrayId() {
return trayId;
}
public void setTrayId(String trayId) {
this.trayId = trayId;
}
public String getDisabledLoc() {
return disabledLoc;
}
public void setDisabledLoc(String disabledLoc) {
this.disabledLoc = disabledLoc;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
...@@ -2,6 +2,7 @@ package com.myproject.webapp.controller.webService; ...@@ -2,6 +2,7 @@ package com.myproject.webapp.controller.webService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.myproject.bean.qisda.ResultBean; import com.myproject.bean.qisda.ResultBean;
import com.myproject.bean.qisda.TrayInfo;
import com.myproject.bean.update.Barcode; import com.myproject.bean.update.Barcode;
import com.myproject.bean.update.Component; import com.myproject.bean.update.Component;
import com.myproject.bean.update.StoragePos; import com.myproject.bean.update.StoragePos;
...@@ -27,57 +28,88 @@ import java.util.*; ...@@ -27,57 +28,88 @@ import java.util.*;
public class QisdaDisabledTrayController { public class QisdaDisabledTrayController {
/** /**
* 环形线禁用托盘信息
*/
protected String disabledTray = "";
/**
* 禁用托盘缓存信息,key为托盘号,value为禁用时间 * 禁用托盘缓存信息,key为托盘号,value为禁用时间
*/ */
protected Map<String, String> disabledTrayMap = new HashMap<>(); protected Map<String, TrayInfo> trayMap = new HashMap<>();
protected final static Logger log = LogManager.getLogger(QisdaDisabledTrayController.class); protected final static Logger log = LogManager.getLogger(QisdaDisabledTrayController.class);
/** /**
* 获取工单的小料盘绑定数量 * 获取工单的小料盘绑定数量
*/ */
@RequestMapping(value = "/getDisabledTray") @RequestMapping(value = "/getTrayInfo")
@ResponseBody
public Collection<TrayInfo> getDisabledTray(HttpServletRequest request){
return trayMap.values();
}
@RequestMapping(value = "/updateTray")
@ResponseBody @ResponseBody
public Map<String, String> smallBindCount(HttpServletRequest request){ public ResultBean updateTray(HttpServletRequest request) {
return disabledTrayMap; try{
String trayId = request.getParameter("trayId");
updateTrayInfo(trayId,null);
return ResultBean.newOkResult("");
}catch(Exception e){
log.error("更新托盘信息出错",e);
return ResultBean.newErrorResult(500,e.getMessage());
}
}
private synchronized void updateTrayInfo(String trayId, String disableLoc){
TrayInfo trayInfo = trayMap.get(trayId);
if(trayInfo == null){
trayInfo = new TrayInfo();
trayInfo.setTrayId(trayId);
}
if(Strings.isBlank(trayInfo.getDisabledLoc())){
//已禁用托盘,不更新使用时间
String dateStr = DateUtil.toDateString(new Date(),"yyyy-MM-dd HH:mm:ss");
trayInfo.setDate(dateStr);
}
if(disableLoc != null){
//更新托盘使用状态时不更新禁用信息
if(Strings.isBlank(trayInfo.getDisabledLoc())){
log.info("托盘["+trayId+"]被禁用,禁用位置["+disableLoc+"]");
}
trayInfo.setDisabledLoc(disableLoc);
}
trayMap.put(trayId, trayInfo);
} }
@RequestMapping(value = "/updateDisabledTray") @RequestMapping(value = "/updateDisabledTray")
@ResponseBody @ResponseBody
public ResultBean getReelSize(HttpServletRequest request) { public ResultBean updateDisabledTray(HttpServletRequest request) {
try{ try{
String trayList = request.getParameter("disabledTray"); String trayList = request.getParameter("disabledTray");
if(Strings.isBlank(trayList)){ if(Strings.isBlank(trayList)){
trayList = ""; trayList = "";
} }
if(!disabledTray.equals(trayList)){
log.info("收到禁用托盘更新信息:"+trayList);
}
if(Strings.isNotBlank(trayList)){ if(Strings.isNotBlank(trayList)){
Map<String,String> disableMap = new HashMap<>();
List<String> newDisabeldTrayList = Lists.newArrayList(trayList.split(",")); List<String> newDisabeldTrayList = Lists.newArrayList(trayList.split(","));
Collection<String> existDisabedTrayList = disabledTrayMap.keySet(); for (String disableInfo : newDisabeldTrayList) {
for (String existDisabedTray : existDisabedTrayList) { String[] disableArr = disableInfo.split("=");
if(!newDisabeldTrayList.contains(existDisabedTray)){ if(disableArr.length == 2){
//已经启用 String trayId = disableArr[0];
log.info("托盘["+existDisabedTray+"]已启用,从缓存中清除"); String disableLoc = disableArr[1];
disabledTrayMap.remove(existDisabedTray); disableMap.put(trayId,disableLoc);
}; updateTrayInfo(trayId,disableLoc);
}
} }
for (String newDisabeldTray : newDisabeldTrayList) { for (TrayInfo trayInfo : trayMap.values()) {
if(!existDisabedTrayList.contains(newDisabeldTray)){ String trayId = trayInfo.getTrayId();
String dateTime = DateUtil.toDateString(new Date(),"yyyy-MM-dd HH:mm:ss"); String disableLoc = disableMap.get(trayId);
log.info("托盘["+newDisabeldTray+"]已禁用,加入缓存,禁用时间:"+dateTime); if(disableLoc == null){
disabledTrayMap.put(newDisabeldTray,dateTime); //禁用托盘未包含此托盘,如果之前已经禁用,需要解除禁用
if(Strings.isNotBlank(trayInfo.getDisabledLoc())){
log.info("托盘["+trayId+"]已启用,去除禁用信息["+trayInfo.getDisabledLoc()+"]");
updateTrayInfo(trayId,"");
}
} }
} }
} }
disabledTray = trayList;
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
}catch(Exception e){ }catch(Exception e){
log.error("上传禁用托盘信息出错",e); log.error("上传禁用托盘信息出错",e);
......
...@@ -12,6 +12,30 @@ ...@@ -12,6 +12,30 @@
<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-grey">
<div class="timeline-time">
<span class="date">2023</span>
<span class="time">02-02</span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2023020210</h2>
<div class="timeline-content">
<ul>
<li>增加查询托盘状态接口,接口地址: http://ip/myproject/rest/api/qisda/device/getTrayInfo
返回示例:[{"trayId":"E25","date":"2023-02-01 16:38:26","disabledLoc":"5"},{"trayId":"E38","date":"2023-02-01 16:40:11","disabledLoc":""}]
返回说明:
trayId: 托盘编号
disabledLoc: 如果值为空表示托盘正常,未被禁用; 如果不为空,表示禁用该托盘的位置
date: 如果托盘禁用,此时间为禁用托盘的时间; 如果托盘未被禁用,此时间为托盘上次经过检测点的时间
</li>
<li>去除查询禁用托盘接口</li>
</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: 2023.01.1010</span> <span class="right" style="color: #a3a3a3;">Version: V2023020210</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!