Commit 3e08084d sunke

出库时,料仓门口未检测到料时,客户端取消出库任务,同时保存异常信息

入库时,料仓门口未检测到物料,只保存异常信息,流程继续
入库绑定时BUG修复
1 个父辈 8ce63ff1
......@@ -311,13 +311,24 @@ public class OutInfoCache {
if(outInfo.isClosed() || outInfo.isSendEnd()){
removeFromCache(outInfo.gethSerial());
}else{
outInfoList.add(outInfo);
if(outInfo != null){
outInfoList.add(outInfo);
}
}
}
//执行过按执行时间先后排序, 未执行过的放在最后
outInfoList.sort(new Comparator<OutInfo>() {
@Override
public int compare(OutInfo o1, OutInfo o2) {
if(o1 == null && o2 == null) {
return 0;
}
if(o1 == null) {
return -1;
}
if(o2 == null) {
return 1;
}
//按优先级排序,如果没有优先级,使用
long executeTime1 = o1.getFirstExecuteTime();
long executeTime2 = o2.getFirstExecuteTime();
......@@ -330,7 +341,13 @@ public class OutInfoCache {
return -1;
}
Long abs = Math.abs(executeTime1) - Math.abs(executeTime2);
return abs.intValue();
int result = abs.intValue();
if(result < 0){
result = -1;
}else if(result > 0){
result = 1;
}
return result;
}
//都为0即未执行过的,到这里的,理论上都是未达到必须出库时间(达到必须出库时间的,已经修改过优先级)
Date sdate1 = o1.getSdate();
......
......@@ -73,7 +73,7 @@ public interface ITaskService {
//void checkOutInaction(String areaId, int day) throws ValidateException;
void hideTask(String taskId);
boolean hideTask(String taskId);
Collection<String> excludePosIds();
......
......@@ -579,22 +579,59 @@ public class QisdaDeviceController extends BaseController {
public ResultBean cancelPutInTask(HttpServletRequest request) {
String codeStr = request.getParameter("barcode");
try{
Collection<DataLog> queueTasks = taskService.getQueueTasks();
for (DataLog queueTask : queueTasks) {
if(queueTask.isPutInTask() && codeStr.contains(queueTask.getBarcode())){
//只能取消入库任务
boolean cancelResult = taskService.cancelTask(queueTask.getId());
log.info("客户端取消["+codeStr+"]的入库任务结果:" + cancelResult);
return ResultBean.newOkResult(cancelResult);
Collection<DataLog> tasks = taskService.getAllTasks();
for (DataLog task : tasks) {
if(codeStr.contains(task.getBarcode())){
if(task.isPutInTask()){
boolean cancelResult = taskService.cancelTask(task.getId());
log.info("客户端取消["+codeStr+"]的入库任务结果:" + cancelResult);
return ResultBean.newOkResult(cancelResult);
}
// else{
// boolean hideResult = taskService.hideTask(task.getId());
// log.info("客户端取消["+codeStr+"]的出库任务结果:" + hideResult);
// return ResultBean.newOkResult(hideResult);
// }
}
}
}catch (Exception e){
return ResultBean.newErrorResult(2002, "客户端取消任务["+codeStr+"]失败:" + e.getMessage());
return ResultBean.newErrorResult(2002, "客户端取消入库任务["+codeStr+"]失败:" + e.getMessage());
}
return ResultBean.newErrorResult(2003, "客户端取消任务["+codeStr+"]失败");
}
/**
* 取消入库任务
*/
@RequestMapping(value = "/cancelOutTask")
@ResponseBody
public ResultBean cancelOutTask(HttpServletRequest request) {
String codeStr = request.getParameter("barcode");
try{
Collection<DataLog> tasks = taskService.getAllTasks();
for (DataLog task : tasks) {
if(codeStr.contains(task.getBarcode())){
if(task.isCheckOutTask()){
if(task.isWait() || task.isExecuting()){
//未执行完成的,理论上不会从客户端取消
boolean cancelResult = taskService.cancelTask(task.getId());
log.info("客户端取消["+codeStr+"]的未执行完成的出库任务结果:" + cancelResult);
return ResultBean.newOkResult(cancelResult);
}else{
boolean hideResult = taskService.hideTask(task.getId());
log.info("客户端取消["+codeStr+"]已完成的出库任务结果:" + hideResult);
return ResultBean.newOkResult(hideResult);
}
}
}
}
}catch (Exception e){
return ResultBean.newErrorResult(2004, "客户端取消任务["+codeStr+"]失败:" + e.getMessage());
}
return ResultBean.newErrorResult(2005, "客户端取消任务["+codeStr+"]失败");
}
/**
* 分盘料/紧急料放上料串或料架时调用
*/
@RequestMapping(value = "/afterPutCut")
......
......@@ -773,7 +773,7 @@ public class TaskService implements ITaskService {
}
@Override
public void hideTask(String taskId) {
public boolean hideTask(String taskId) {
DataLog task = null;
List<DataLog> finishedTasks = getFinishedTasks();
for (DataLog finishedTask : finishedTasks) {
......@@ -809,8 +809,10 @@ public class TaskService implements ITaskService {
}
}
return true;
}
return false;
}
/**
......
......@@ -12,6 +12,23 @@
<div class="row">
<div class="col-md-12">
<ul class="timeline">
<li class="timeline-purple">
<div class="timeline-time">
<span class="date">2020 </span>
<span class="time">10-12 </span>
</div>
<div class="timeline-icon">
<i class="fa fa-clock-o"></i>
</div>
<div class="timeline-body">
<h2>版本: V2020101210</h2>
<div class="timeline-content">
<ul>
<li>优化部分逻辑,提高系统的稳定性</li>
</ul>
</div>
</div>
</li>
<li class="timeline-green">
<div class="timeline-time">
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!