package com.qianwen.smartman.modules.mdc.utils;
|
|
import com.google.common.collect.Lists;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import com.qianwen.smartman.common.cache.ParamCache;
|
import com.qianwen.core.tool.jackson.JsonUtil;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.mdc.dto.OpenTypeDTO;
|
import com.qianwen.smartman.modules.mdc.entity.SuperAggregate;
|
import com.qianwen.smartman.modules.mdc.enums.OpenTypeEnums;
|
|
public class FilterOffUtils {
|
/**
|
* 过滤休息日?
|
* @param <R>
|
* @param data 聚合状态数据列表
|
* @param openTypeEnums RUNNING/ALARM/OEE等
|
* @return
|
*/
|
public static <R extends SuperAggregate> List<R> filterOffDay(List<R> data, OpenTypeEnums openTypeEnums) {
|
if (Func.isEmpty(data)) {
|
return data;
|
}
|
boolean filterType = whetherToFilter(OpenTypeEnums.PARAM_KEY_TYPE, openTypeEnums);//mdc_open_type,是否过滤该类型
|
boolean filterShift = whetherToFilter(OpenTypeEnums.PARAM_KEY_SHIFT, openTypeEnums);//mdc_open_shift,是否过滤班制
|
//这里简化,不过滤了,数据在win服务器有,blade_boot_blade_param-0418bak.sql有,是个json数组
|
|
if (!filterType && !filterShift) {
|
return data;
|
}
|
return data.stream().filter(item -> {
|
return (filterType && item.getShiftTimeType().equals(2)) ? false : true;//2:休息时间段,这里是去掉休息的状态数据
|
}).filter(item2 -> {
|
return !filterShift || item2.getShiftIndex().intValue() > 0;
|
}).collect(Collectors.toList());
|
}
|
|
public static <R extends SuperAggregate> R filterOffDay(R data, OpenTypeEnums openTypeEnums) {
|
if (filterOffDay(Lists.newArrayList(new SuperAggregate[]{data}), openTypeEnums).isEmpty()) {
|
return null;
|
}
|
return data;
|
}
|
|
public static boolean whetherToFilter(OpenTypeEnums typeEnums, OpenTypeEnums enums) {
|
String value = ParamCache.getValue(typeEnums.getMsg());
|
if (Func.isNull(value)) {
|
return false;
|
}
|
List<OpenTypeDTO> dtos = JsonUtil.readList(value, OpenTypeDTO.class);
|
if (Func.isEmpty(dtos)) {
|
return false;
|
}
|
for (OpenTypeDTO dto : dtos) {
|
if (dto.getType().equals(enums.name())) {
|
return dto.getOpen().equals(1);
|
}
|
}
|
return false;
|
}
|
|
public static boolean whetherToFilter(OpenTypeEnums enums) {
|
return whetherToFilter(OpenTypeEnums.PARAM_KEY_TYPE, enums);
|
}
|
}
|