Commit 43c924a5 LN

看板任务列表改成内存查询

1 个父辈 46d38152
package com.neotel.smfcore.core.kanban.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.PageData;
......@@ -45,6 +46,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Slf4j
......@@ -116,37 +119,111 @@ public class BoxKanbanController {
if(criteria.getType()!=null &&criteria.getType().equals(0) ){
criteria.setType(null);
}
Query query = QueryHelp.getQuery(criteria);
String groupId = criteria.getGroupId();
List<String> cidList = dataCache. getCidsByGroupId(groupId,true);
query.addCriteria(Criteria.where("cid").in(cidList));
//只查找近12个小时未完成的任务
//暂时改成48小时
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY, -48);
query.addCriteria(Criteria.where("updateDate").gte(calendar.getTime()));
Calendar ca2 = Calendar.getInstance();
ca2.add(Calendar.MINUTE, -10);
Date lastUpdateTime=new Date((new Date().getTime())-10 * 60 * 1000);
//正常
if(criteria.getTaskStatus()==1){
query.addCriteria(Criteria.where("updateDate").gte(ca2.getTime()).and("status").is(OP_STATUS.EXECUTING.name()));
}//异常
else if(criteria.getTaskStatus()==2){
query.addCriteria(Criteria.where("updateDate").lte(ca2.getTime()).and("status").is(OP_STATUS.EXECUTING.name()));
}//等待
else if(criteria.getTaskStatus()==3){
query.addCriteria(Criteria.where("status").is(OP_STATUS.WAIT.name()));
}else{
query.addCriteria(Criteria.where("status").nin(OP_STATUS.CANCEL.name(), OP_STATUS.FINISHED.name()));
}
List<DataLog> allTasks=taskService.getAllTasks();
List<BoxTaskDto> dtos=new ArrayList<>();
for (DataLog datalog :
allTasks) {
//判断类型
if (criteria.getType() != null && (!criteria.getType().equals(datalog.getType()))) {
continue;
}
//料仓ID
if (criteria.getStorageId() != null && !(criteria.getStorageId().equals(datalog.getStorageId()))) {
continue;
}
//判断组
String groupId = criteria.getGroupId();
List<String> cidList = dataCache.getCidsByGroupId(groupId, true);
if (!cidList.contains(datalog.getCid())) {
continue;
}
boolean statusOk = false;
Date lastUpdateTime = new Date((new Date().getTime()) - 10 * 60 * 1000);
//正常
if (criteria.getTaskStatus() == 1) {
if (lastUpdateTime.before(datalog.getUpdateDate()) && datalog.getStatus().equals(OP_STATUS.EXECUTING.name())) {
statusOk = true;
}
}//异常
else if (criteria.getTaskStatus() == 2) {
if (lastUpdateTime.after(datalog.getUpdateDate()) && datalog.getStatus().equals(OP_STATUS.EXECUTING.name())) {
statusOk = true;
}
}//等待
else if (criteria.getTaskStatus() == 3) {
if (datalog.getStatus().equals(OP_STATUS.WAIT.name())) {
statusOk = true;
}
} else {
if (datalog.getStatus().equals(OP_STATUS.WAIT.name()) || datalog.getStatus().equals(OP_STATUS.FINISHED.name())) {
statusOk = true;
}
}
if (!statusOk) {
continue;
}
PageData<DataLog> dataLogPageData=dataLogManager.findByPage(query,pageable);
List<BoxTaskDto> boxTaskDtos=boxTaskMapper.toDto(dataLogPageData.getContent());
return new PageData(boxTaskDtos, boxTaskDtos.size());
dtos.add(boxTaskMapper.toDto(datalog));
// boolean blurryOk = false;
// // 如果是多字段
// String blurry = criteria.getBlurry();
// if (ObjectUtil.isNotEmpty(blurry)) {
// String[] blurrys = blurry.split(",");
// String[] valueArray = new String[]{datalog.getPosName(), datalog.getStorageName(), datalog.getCid(), datalog.getPartNumber(), datalog.getBarcode(), datalog.getSourceName()};
// for (String s : blurrys) {
// for (String v :
// valueArray) {
// Pattern pattern = Pattern.compile(QueryHelp.escapeExprSpecialWord(s), Pattern.CASE_INSENSITIVE);
// Matcher m = pattern.matcher(v);
// while (m.find()) {
// blurryOk = true;
// break;
// }
// if (blurryOk) break;
// }
// if (blurryOk) break;
//
// }
//
// } else {
// blurryOk = true;
// }
// if (blurryOk) {
// dtos.add(boxTaskMapper.toDto(datalog));
// }
}
return new PageData<>(dtos, dtos.size());
// Query query = QueryHelp.getQuery(criteria);
// String groupId = criteria.getGroupId();
// List<String> cidList = dataCache. getCidsByGroupId(groupId,true);
// query.addCriteria(Criteria.where("cid").in(cidList));
//
// //只查找近12个小时未完成的任务
// //暂时改成48小时
// Calendar calendar = Calendar.getInstance();
// calendar.add(Calendar.HOUR_OF_DAY, -48);
// query.addCriteria(Criteria.where("updateDate").gte(calendar.getTime()));
//
// Calendar ca2 = Calendar.getInstance();
// ca2.add(Calendar.MINUTE, -10);
//
// Date lastUpdateTime=new Date((new Date().getTime())-10 * 60 * 1000);
// //正常
// if(criteria.getTaskStatus()==1){
// query.addCriteria(Criteria.where("updateDate").gte(ca2.getTime()).and("status").is(OP_STATUS.EXECUTING.name()));
// }//异常
// else if(criteria.getTaskStatus()==2){
// query.addCriteria(Criteria.where("updateDate").lte(ca2.getTime()).and("status").is(OP_STATUS.EXECUTING.name()));
// }//等待
// else if(criteria.getTaskStatus()==3){
// query.addCriteria(Criteria.where("status").is(OP_STATUS.WAIT.name()));
// }else{
// query.addCriteria(Criteria.where("status").nin(OP_STATUS.CANCEL.name(), OP_STATUS.FINISHED.name()));
// }
//
// PageData<DataLog> dataLogPageData=dataLogManager.findByPage(query,pageable);
// List<BoxTaskDto> boxTaskDtos=boxTaskMapper.toDto(dataLogPageData.getContent());
// return new PageData(boxTaskDtos, boxTaskDtos.size());
}
......
......@@ -14,35 +14,35 @@ public class BoxTaskQueryCriter {
@QueryCondition(blurry = "storageName,cid,posName,partNumber,barcode,sourceName")
private String blurry;
@QueryCondition(type = QueryCondition.Type.BETWEEN, propName = "updateDate")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> createDate;
// @QueryCondition(type = QueryCondition.Type.BETWEEN, propName = "updateDate")
// @DateTimeFormat(pattern = "yyyy-MM-dd")
// private BetweenData<Date> createDate;
@ApiModelProperty("组ID")
private String groupId;
@ApiModelProperty("料仓CID")
@QueryCondition
private String cid;
// @ApiModelProperty("料仓CID")
// @QueryCondition
// private String cid;
@ApiModelProperty("料仓ID")
@QueryCondition(isDBId =true)
private String storageId;
@ApiModelProperty("库位号")
@QueryCondition
private String posName;
@ApiModelProperty("条码")
@QueryCondition
private String barcode;
@ApiModelProperty("PN")
@QueryCondition
private String partNumber;
@ApiModelProperty("来源")
@QueryCondition
private String sourceName;
// @ApiModelProperty("库位号")
// @QueryCondition
// private String posName;
// @ApiModelProperty("条码")
// @QueryCondition
// private String barcode;
// @ApiModelProperty("PN")
// @QueryCondition
// private String partNumber;
//
// @ApiModelProperty("来源")
// @QueryCondition
// private String sourceName;
@ApiModelProperty("任务状态:0=所有,1=正常,2=异常,3=等待")
private int taskStatus=0 ;
......
......@@ -193,6 +193,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
}
}
String respMsg = "unloadMaterialResp;"+ eventId+";" + resultCode+";"+resultMsg;
log.info(respMsg);
session.write(respMsg);
}else if(respCommand.isOrderMaterialExtCmd()){
handleOrderMaterialExtCmd(session,resposArr);
......@@ -236,6 +237,7 @@ public class HellaServiceHandler extends IoHandlerAdapter implements ITaskListen
}
String respMsg = "getInventoryResp;"+eventId+";"+resultCode+";"+resultMsg+";"+dataStr;
log.info(respMsg);
session.write(respMsg);
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!