feat():数据采集同步

master
jiyufei 2 months ago
parent b3cd205a2c
commit 2a4657db51

@ -13,19 +13,21 @@ spring:
thymeleaf: thymeleaf:
cache: false #spring内置thymeleaf缓存 cache: false #spring内置thymeleaf缓存
# ===================== 数据源配置 ===================== # ===================== 数据源配置 =====================
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure #排除自动配置手动配置druid # exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure #排除自动配置手动配置druid
datasource: # datasource:
db-type: MySQL #数据库类型(可选值 MySQL、SQLServer、Oracle、DM8、KingbaseES、PostgreSQL请严格按可选值填写) # db-type: MySQL #数据库类型(可选值 MySQL、SQLServer、Oracle、DM8、KingbaseES、PostgreSQL请严格按可选值填写)
host: 222.71.165.188 # host: 222.71.165.188
port: 3309 # port: 3309
username: root # username: root
password: linus,.123 # password: linus,.123
db-name: jnpf_yys_dev # db-name: jnpf_yys_dev
db-schema: #金仓达梦选填 # db-schema: #金仓达梦选填
prepare-url: #自定义url # prepare-url: #自定义url
# ===================== 动态多数据源 ===================== # ===================== 动态多数据源 =====================
datasource:
db-type: MySQL
dynamic: dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: true #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 strict: true #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
@ -59,21 +61,26 @@ spring:
statementPrepareAfterLogEnabled: false statementPrepareAfterLogEnabled: false
statementPrepareCallAfterLogEnabled: false statementPrepareCallAfterLogEnabled: false
statementParameterSetLogEnabled: false statementParameterSetLogEnabled: false
# datasource: datasource:
# master: master:
# url: jdbc:mysql://${spring.datasource.host}:${spring.datasource.port}/${spring.datasource.dbname}?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC url: jdbc:mysql://222.71.165.188:3309/jnpf_yys_dev?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
# username: ${spring.datasource.username} username: root
# password: ${spring.datasource.password} password: linus,.123
# driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
slave_1:
url: jdbc:mysql://222.71.165.188:3309/yys-sc?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: linus,.123
driver-class-name: com.mysql.cj.jdbc.Driver
# ===================== Redis配置 ===================== # ===================== Redis配置 =====================
# redis单机模式 # redis单机模式
redis: redis:
database: 1 #缓存库编号 database: 1 #缓存库编号
# host: 222.71.165.188 # host: 222.71.165.188
host: 127.0.0.1 host: 127.0.0.1
port: 6379 port: 6379
# password: qweasd,.123 # 密码为空时,请将本行注释 # password: qweasd,.123 # 密码为空时,请将本行注释
timeout: 3000 #超时时间(单位:秒) timeout: 3000 #超时时间(单位:秒)
lettuce: #Lettuce为Redis的Java驱动包 lettuce: #Lettuce为Redis的Java驱动包
pool: pool:

@ -32,4 +32,6 @@ public interface YysDeviceDataService extends IService<YysDeviceDataEntity> {
void saveOrUpdate(YysDeviceDataForm yysDeviceDataForm,String id, boolean isSave) throws Exception; void saveOrUpdate(YysDeviceDataForm yysDeviceDataForm,String id, boolean isSave) throws Exception;
List<EqmtCollectPubDataEntity> syncData(List<Long> syncIds);
} }

@ -32,4 +32,5 @@ public interface YysDeviceWarnService extends IService<YysDeviceWarnEntity> {
void saveOrUpdate(YysDeviceWarnForm yysDeviceWarnForm,String id, boolean isSave) throws Exception; void saveOrUpdate(YysDeviceWarnForm yysDeviceWarnForm,String id, boolean isSave) throws Exception;
void syncCount(List<YysDeviceWarnStatisticsEntity> collect);
} }

@ -2,7 +2,9 @@ package jnpf.service;
import jnpf.model.yysdevicewarnstatistics.*; import jnpf.model.yysdevicewarnstatistics.*;
import jnpf.entity.*; import jnpf.entity.*;
import java.util.*; import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -16,7 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
public interface YysDeviceWarnStatisticsService extends IService<YysDeviceWarnStatisticsEntity> { public interface YysDeviceWarnStatisticsService extends IService<YysDeviceWarnStatisticsEntity> {
List<YysDeviceWarnStatisticsEntity> getList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination); List<YysDeviceWarnStatisticsEntity> getList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination);
List<YysDeviceWarnStatisticsEntity> getTypeList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination,String dataType); List<YysDeviceWarnStatisticsEntity> getTypeList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination, String dataType);
YysDeviceWarnStatisticsEntity getInfo(String id); YysDeviceWarnStatisticsEntity getInfo(String id);
@ -28,8 +30,10 @@ public interface YysDeviceWarnStatisticsService extends IService<YysDeviceWarnSt
//子表方法 //子表方法
//副表数据方法 //副表数据方法
String checkForm(YysDeviceWarnStatisticsForm form,int i); String checkForm(YysDeviceWarnStatisticsForm form, int i);
void saveOrUpdate(YysDeviceWarnStatisticsForm yysDeviceWarnStatisticsForm, String id, boolean isSave) throws Exception;
void saveOrUpdate(YysDeviceWarnStatisticsForm yysDeviceWarnStatisticsForm,String id, boolean isSave) throws Exception; List<EqmtCollectExceptMasterEntity> syncData(List<Long> syncIds);
} }

@ -1,23 +1,37 @@
package jnpf.service.impl; package jnpf.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.google.common.collect.Lists;
import jnpf.entity.*; import jnpf.entity.*;
import jnpf.mapper.YysDeviceDataMapper; import jnpf.mapper.YysDeviceDataMapper;
import jnpf.service.*; import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.yysdevicedata.*; import jnpf.model.yysdevicedata.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil; import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel; import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel; import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel; import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import jnpf.model.QueryModel; import jnpf.model.QueryModel;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel; import jnpf.base.model.ColumnDataModel;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel; import jnpf.database.model.superQuery.SuperJsonModel;
@ -25,13 +39,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import jnpf.util.*; import jnpf.util.*;
import java.util.*; import java.util.*;
import jnpf.base.UserInfo; import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity; import jnpf.permission.entity.UserEntity;
/** /**
*
* yysDeviceData * yysDeviceData
* V3.5 * V3.5
* https://www.jnpfsoft.com * https://www.jnpfsoft.com
@ -39,244 +57,278 @@ import jnpf.permission.entity.UserEntity;
* 2024-08-09 * 2024-08-09
*/ */
@Service @Service
public class YysDeviceDataServiceImpl extends ServiceImpl<YysDeviceDataMapper, YysDeviceDataEntity> implements YysDeviceDataService{ public class YysDeviceDataServiceImpl extends ServiceImpl<YysDeviceDataMapper, YysDeviceDataEntity> implements YysDeviceDataService {
@Autowired @Autowired
private GeneraterSwapUtil generaterSwapUtil; private GeneraterSwapUtil generaterSwapUtil;
@Autowired @Autowired
private UserProvider userProvider; private UserProvider userProvider;
@Autowired
private JdbcTemplate jdbcTemplate;
@Override @Override
public List<YysDeviceDataEntity> getList(YysDeviceDataPagination yysDeviceDataPagination){ public List<YysDeviceDataEntity> getList(YysDeviceDataPagination yysDeviceDataPagination) {
return getTypeList(yysDeviceDataPagination,yysDeviceDataPagination.getDataType()); return getTypeList(yysDeviceDataPagination, yysDeviceDataPagination.getDataType());
} }
/** 列表查询 */
/**
*
*/
@Override @Override
public List<YysDeviceDataEntity> getTypeList(YysDeviceDataPagination yysDeviceDataPagination,String dataType){ public List<YysDeviceDataEntity> getTypeList(YysDeviceDataPagination yysDeviceDataPagination, String dataType) {
String userId=userProvider.get().getUserId(); String userId = userProvider.get().getUserId();
List<String> AllIdList =new ArrayList(); List<String> AllIdList = new ArrayList();
List<List<String>> intersectionList =new ArrayList<>(); List<List<String>> intersectionList = new ArrayList<>();
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String columnData = !isPc ? YysDeviceDataConstant.getAppColumnData() : YysDeviceDataConstant.getColumnData(); String columnData = !isPc ? YysDeviceDataConstant.getAppColumnData() : YysDeviceDataConstant.getColumnData();
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class); ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList()); String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
int total=0; int total = 0;
int yysDeviceDataNum =0; int yysDeviceDataNum = 0;
QueryWrapper<YysDeviceDataEntity> yysDeviceDataQueryWrapper=new QueryWrapper<>(); QueryWrapper<YysDeviceDataEntity> yysDeviceDataQueryWrapper = new QueryWrapper<>();
List<String> allSuperIDlist = new ArrayList<>(); List<String> allSuperIDlist = new ArrayList<>();
String superOp =""; String superOp = "";
if (ObjectUtil.isNotEmpty(yysDeviceDataPagination.getSuperQueryJson())){ if (ObjectUtil.isNotEmpty(yysDeviceDataPagination.getSuperQueryJson())) {
List<String> allSuperList = new ArrayList<>(); List<String> allSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>(); List<List<String>> intersectionSuperList = new ArrayList<>();
String queryJson = yysDeviceDataPagination.getSuperQueryJson(); String queryJson = yysDeviceDataPagination.getSuperQueryJson();
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class); SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
int superNum = 0; int superNum = 0;
QueryWrapper<YysDeviceDataEntity> yysDeviceDataSuperWrapper = new QueryWrapper<>(); QueryWrapper<YysDeviceDataEntity> yysDeviceDataSuperWrapper = new QueryWrapper<>();
yysDeviceDataSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceDataSuperWrapper,YysDeviceDataEntity.class,queryJson,"0")); yysDeviceDataSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceDataSuperWrapper, YysDeviceDataEntity.class, queryJson, "0"));
int yysDeviceDataNum1 = yysDeviceDataSuperWrapper.getExpression().getNormal().size(); int yysDeviceDataNum1 = yysDeviceDataSuperWrapper.getExpression().getNormal().size();
if (yysDeviceDataNum1>0){ if (yysDeviceDataNum1 > 0) {
List<String> yysDeviceDataList =this.list(yysDeviceDataSuperWrapper).stream().map(YysDeviceDataEntity::getId).collect(Collectors.toList()); List<String> yysDeviceDataList = this.list(yysDeviceDataSuperWrapper).stream().map(YysDeviceDataEntity::getId).collect(Collectors.toList());
allSuperList.addAll(yysDeviceDataList); allSuperList.addAll(yysDeviceDataList);
intersectionSuperList.add(yysDeviceDataList); intersectionSuperList.add(yysDeviceDataList);
superNum++; superNum++;
} }
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : ""; superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
//and or //and or
if(superOp.equalsIgnoreCase("and")){ if (superOp.equalsIgnoreCase("and")) {
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList); allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
}else{ } else {
allSuperIDlist = allSuperList; allSuperIDlist = allSuperList;
} }
} }
List<String> allRuleIDlist = new ArrayList<>(); List<String> allRuleIDlist = new ArrayList<>();
String ruleOp =""; String ruleOp = "";
if (ObjectUtil.isNotEmpty(ruleJson)){ if (ObjectUtil.isNotEmpty(ruleJson)) {
List<String> allRuleList = new ArrayList<>(); List<String> allRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>(); List<List<String>> intersectionRuleList = new ArrayList<>();
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class); SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
int ruleNum = 0; int ruleNum = 0;
QueryWrapper<YysDeviceDataEntity> yysDeviceDataSuperWrapper = new QueryWrapper<>(); QueryWrapper<YysDeviceDataEntity> yysDeviceDataSuperWrapper = new QueryWrapper<>();
yysDeviceDataSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceDataSuperWrapper,YysDeviceDataEntity.class,ruleJson,"0")); yysDeviceDataSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceDataSuperWrapper, YysDeviceDataEntity.class, ruleJson, "0"));
int yysDeviceDataNum1 = yysDeviceDataSuperWrapper.getExpression().getNormal().size(); int yysDeviceDataNum1 = yysDeviceDataSuperWrapper.getExpression().getNormal().size();
if (yysDeviceDataNum1>0){ if (yysDeviceDataNum1 > 0) {
List<String> yysDeviceDataList =this.list(yysDeviceDataSuperWrapper).stream().map(YysDeviceDataEntity::getId).collect(Collectors.toList()); List<String> yysDeviceDataList = this.list(yysDeviceDataSuperWrapper).stream().map(YysDeviceDataEntity::getId).collect(Collectors.toList());
allRuleList.addAll(yysDeviceDataList); allRuleList.addAll(yysDeviceDataList);
intersectionRuleList.add(yysDeviceDataList); intersectionRuleList.add(yysDeviceDataList);
ruleNum++; ruleNum++;
} }
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : ""; ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
//and or //and or
if(ruleOp.equalsIgnoreCase("and")){ if (ruleOp.equalsIgnoreCase("and")) {
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList); allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
}else{ } else {
allRuleIDlist = allRuleList; allRuleIDlist = allRuleList;
} }
} }
boolean pcPermission = false; boolean pcPermission = false;
boolean appPermission = false; boolean appPermission = false;
if(isPc && pcPermission){ if (isPc && pcPermission) {
if (!userProvider.get().getIsAdministrator()){ if (!userProvider.get().getIsAdministrator()) {
Object yysDeviceDataObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceDataQueryWrapper,YysDeviceDataEntity.class,yysDeviceDataPagination.getMenuId(),"0")); Object yysDeviceDataObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceDataQueryWrapper, YysDeviceDataEntity.class, yysDeviceDataPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(yysDeviceDataObj)){ if (ObjectUtil.isEmpty(yysDeviceDataObj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
yysDeviceDataQueryWrapper = (QueryWrapper<YysDeviceDataEntity>)yysDeviceDataObj; yysDeviceDataQueryWrapper = (QueryWrapper<YysDeviceDataEntity>) yysDeviceDataObj;
if( yysDeviceDataQueryWrapper.getExpression().getNormal().size()>0){ if (yysDeviceDataQueryWrapper.getExpression().getNormal().size() > 0) {
yysDeviceDataNum++; yysDeviceDataNum++;
} }
} }
} }
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object yysDeviceDataObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceDataQueryWrapper,YysDeviceDataEntity.class,yysDeviceDataPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(yysDeviceDataObj)){
return new ArrayList<>();
} else {
yysDeviceDataQueryWrapper = (QueryWrapper<YysDeviceDataEntity>)yysDeviceDataObj;
if( yysDeviceDataQueryWrapper.getExpression().getNormal().size()>0){
yysDeviceDataNum++;
}
} }
if (!isPc && appPermission) {
if (!userProvider.get().getIsAdministrator()) {
Object yysDeviceDataObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceDataQueryWrapper, YysDeviceDataEntity.class, yysDeviceDataPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(yysDeviceDataObj)) {
return new ArrayList<>();
} else {
yysDeviceDataQueryWrapper = (QueryWrapper<YysDeviceDataEntity>) yysDeviceDataObj;
if (yysDeviceDataQueryWrapper.getExpression().getNormal().size() > 0) {
yysDeviceDataNum++;
}
}
} }
} }
if(isPc){ if (isPc) {
if(ObjectUtil.isNotEmpty(yysDeviceDataPagination.getProductionLine())){ if (ObjectUtil.isNotEmpty(yysDeviceDataPagination.getProductionLine())) {
yysDeviceDataNum++; yysDeviceDataNum++;
String value = yysDeviceDataPagination.getProductionLine() instanceof List ? String value = yysDeviceDataPagination.getProductionLine() instanceof List ?
JsonUtil.getObjectToString(yysDeviceDataPagination.getProductionLine()) : JsonUtil.getObjectToString(yysDeviceDataPagination.getProductionLine()) :
String.valueOf(yysDeviceDataPagination.getProductionLine()); String.valueOf(yysDeviceDataPagination.getProductionLine());
yysDeviceDataQueryWrapper.lambda().like(YysDeviceDataEntity::getProductionLine,value); yysDeviceDataQueryWrapper.lambda().like(YysDeviceDataEntity::getProductionLine, value);
} }
if(ObjectUtil.isNotEmpty(yysDeviceDataPagination.getCreatorTime())){ if (ObjectUtil.isNotEmpty(yysDeviceDataPagination.getCreatorTime())) {
yysDeviceDataNum++; yysDeviceDataNum++;
List CreatorTimeList = JsonUtil.getJsonToList(yysDeviceDataPagination.getCreatorTime(),String.class); List CreatorTimeList = JsonUtil.getJsonToList(yysDeviceDataPagination.getCreatorTime(), String.class);
Long fir = Long.valueOf(String.valueOf(CreatorTimeList.get(0))); Long fir = Long.valueOf(String.valueOf(CreatorTimeList.get(0)));
Long sec = Long.valueOf(String.valueOf(CreatorTimeList.get(1))); Long sec = Long.valueOf(String.valueOf(CreatorTimeList.get(1)));
yysDeviceDataQueryWrapper.lambda().ge(YysDeviceDataEntity::getCreatorTime, new Date(fir)) yysDeviceDataQueryWrapper.lambda().ge(YysDeviceDataEntity::getCreatorTime, new Date(fir))
.le(YysDeviceDataEntity::getCreatorTime, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59")); .le(YysDeviceDataEntity::getCreatorTime, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59"));
} }
} }
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList); List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total>0){ if (total > 0) {
if (intersection.size()==0){ if (intersection.size() == 0) {
intersection.add("jnpfNullList"); intersection.add("jnpfNullList");
} }
yysDeviceDataQueryWrapper.lambda().in(YysDeviceDataEntity::getId, intersection); yysDeviceDataQueryWrapper.lambda().in(YysDeviceDataEntity::getId, intersection);
} }
//是否有高级查询 //是否有高级查询
if (StringUtil.isNotEmpty(superOp)){ if (StringUtil.isNotEmpty(superOp)) {
if (allSuperIDlist.size()==0){ if (allSuperIDlist.size() == 0) {
allSuperIDlist.add("jnpfNullList"); allSuperIDlist.add("jnpfNullList");
} }
List<String> finalAllSuperIDlist = allSuperIDlist; List<String> finalAllSuperIDlist = allSuperIDlist;
yysDeviceDataQueryWrapper.lambda().and(t->t.in(YysDeviceDataEntity::getId, finalAllSuperIDlist)); yysDeviceDataQueryWrapper.lambda().and(t -> t.in(YysDeviceDataEntity::getId, finalAllSuperIDlist));
} }
//是否有数据过滤查询 //是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){ if (StringUtil.isNotEmpty(ruleOp)) {
if (allRuleIDlist.size()==0){ if (allRuleIDlist.size() == 0) {
allRuleIDlist.add("jnpfNullList"); allRuleIDlist.add("jnpfNullList");
} }
List<String> finalAllRuleIDlist = allRuleIDlist; List<String> finalAllRuleIDlist = allRuleIDlist;
yysDeviceDataQueryWrapper.lambda().and(t->t.in(YysDeviceDataEntity::getId, finalAllRuleIDlist)); yysDeviceDataQueryWrapper.lambda().and(t -> t.in(YysDeviceDataEntity::getId, finalAllRuleIDlist));
} }
//排序 //排序
if(StringUtil.isEmpty(yysDeviceDataPagination.getSidx())){ if (StringUtil.isEmpty(yysDeviceDataPagination.getSidx())) {
yysDeviceDataQueryWrapper.lambda().orderByDesc(YysDeviceDataEntity::getId); yysDeviceDataQueryWrapper.lambda().orderByDesc(YysDeviceDataEntity::getId);
}else{ } else {
try { try {
String sidx = yysDeviceDataPagination.getSidx(); String sidx = yysDeviceDataPagination.getSidx();
String[] strs= sidx.split("_name"); String[] strs = sidx.split("_name");
YysDeviceDataEntity yysDeviceDataEntity = new YysDeviceDataEntity(); YysDeviceDataEntity yysDeviceDataEntity = new YysDeviceDataEntity();
Field declaredField = yysDeviceDataEntity.getClass().getDeclaredField(strs[0]); Field declaredField = yysDeviceDataEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true); declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value(); String value = declaredField.getAnnotation(TableField.class).value();
yysDeviceDataQueryWrapper="asc".equals(yysDeviceDataPagination.getSort().toLowerCase())?yysDeviceDataQueryWrapper.orderByAsc(value):yysDeviceDataQueryWrapper.orderByDesc(value); yysDeviceDataQueryWrapper = "asc".equals(yysDeviceDataPagination.getSort().toLowerCase()) ? yysDeviceDataQueryWrapper.orderByAsc(value) : yysDeviceDataQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if("0".equals(dataType)){ if ("0".equals(dataType)) {
if((total>0 && AllIdList.size()>0) || total==0){ if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<YysDeviceDataEntity> page=new Page<>(yysDeviceDataPagination.getCurrentPage(), yysDeviceDataPagination.getPageSize()); Page<YysDeviceDataEntity> page = new Page<>(yysDeviceDataPagination.getCurrentPage(), yysDeviceDataPagination.getPageSize());
IPage<YysDeviceDataEntity> userIPage=this.page(page, yysDeviceDataQueryWrapper); IPage<YysDeviceDataEntity> userIPage = this.page(page, yysDeviceDataQueryWrapper);
return yysDeviceDataPagination.setData(userIPage.getRecords(),userIPage.getTotal()); return yysDeviceDataPagination.setData(userIPage.getRecords(), userIPage.getTotal());
}else{ } else {
List<YysDeviceDataEntity> list = new ArrayList(); List<YysDeviceDataEntity> list = new ArrayList();
return yysDeviceDataPagination.setData(list, list.size()); return yysDeviceDataPagination.setData(list, list.size());
} }
}else{ } else {
return this.list(yysDeviceDataQueryWrapper); return this.list(yysDeviceDataQueryWrapper);
} }
} }
@Override @Override
public YysDeviceDataEntity getInfo(String id){ public YysDeviceDataEntity getInfo(String id) {
QueryWrapper<YysDeviceDataEntity> queryWrapper=new QueryWrapper<>(); QueryWrapper<YysDeviceDataEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(YysDeviceDataEntity::getId,id); queryWrapper.lambda().eq(YysDeviceDataEntity::getId, id);
return this.getOne(queryWrapper); return this.getOne(queryWrapper);
} }
@Override @Override
public void create(YysDeviceDataEntity entity){ public void create(YysDeviceDataEntity entity) {
this.save(entity); this.save(entity);
} }
@Override @Override
public boolean update(String id, YysDeviceDataEntity entity){ public boolean update(String id, YysDeviceDataEntity entity) {
return this.updateById(entity); return this.updateById(entity);
} }
@Override @Override
public void delete(YysDeviceDataEntity entity){ public void delete(YysDeviceDataEntity entity) {
if(entity!=null){ if (entity != null) {
this.removeById(entity.getId()); this.removeById(entity.getId());
} }
} }
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override @Override
public String checkForm(YysDeviceDataForm form,int i) { public String checkForm(YysDeviceDataForm form, int i) {
boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0"); boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id=""; String id = "";
String countRecover = ""; String countRecover = "";
if (isUp){ if (isUp) {
id = form.getId(); id = form.getId();
} }
//主表字段验证 //主表字段验证
return countRecover; return countRecover;
} }
/** /**
* () * ()
* @param id *
* @param yysDeviceDataForm * @param id
* @return * @param yysDeviceDataForm
*/ * @return
*/
@Override @Override
@Transactional @Transactional
public void saveOrUpdate(YysDeviceDataForm yysDeviceDataForm,String id, boolean isSave) throws Exception{ public void saveOrUpdate(YysDeviceDataForm yysDeviceDataForm, String id, boolean isSave) throws Exception {
UserInfo userInfo=userProvider.get(); UserInfo userInfo = userProvider.get();
UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId()); UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
yysDeviceDataForm = JsonUtil.getJsonToBean( yysDeviceDataForm = JsonUtil.getJsonToBean(
generaterSwapUtil.swapDatetime(YysDeviceDataConstant.getFormData(),yysDeviceDataForm),YysDeviceDataForm.class); generaterSwapUtil.swapDatetime(YysDeviceDataConstant.getFormData(), yysDeviceDataForm), YysDeviceDataForm.class);
YysDeviceDataEntity entity = JsonUtil.getJsonToBean(yysDeviceDataForm, YysDeviceDataEntity.class); YysDeviceDataEntity entity = JsonUtil.getJsonToBean(yysDeviceDataForm, YysDeviceDataEntity.class);
if(isSave){ if (isSave) {
String mainId = RandomUtil.uuId() ; String mainId = RandomUtil.uuId();
entity.setCreatorTime(DateUtil.getNowDate()); entity.setCreatorTime(DateUtil.getNowDate());
entity.setId(mainId); entity.setId(mainId);
}else{ } else {
entity.setCreatorTime(DateUtil.getNowDate()); entity.setCreatorTime(DateUtil.getNowDate());
} }
this.saveOrUpdate(entity); this.saveOrUpdate(entity);
} }
@Override
@DS("slave_1")
public List<EqmtCollectPubDataEntity> syncData(List<Long> syncIds) {
List<EqmtCollectPubDataEntity> result = Lists.newArrayList();
String[] lines = new String[]{"1", "2", "3", "4"};
for (String line : lines) {
String childTable = "eqmt_collect_data_sc_" + line;
String sql = "select b.*," + line + " as line from " + childTable + " a left join eqmt_collect_pub_data b on a.eqmt_id = b.eqmt_id";
RowMapper<EqmtCollectPubDataEntity> rowMapper = new BeanPropertyRowMapper<>(EqmtCollectPubDataEntity.class);
result.addAll(this.jdbcTemplate.query(sql, rowMapper));
}
if (CollectionUtils.isEmpty(syncIds)) {
return result;
}
//过滤出已经生成的
return result.stream().filter(obj -> !syncIds.contains(obj.getId())).collect(Collectors.toList());
}
} }

@ -1,23 +1,34 @@
package jnpf.service.impl; package jnpf.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import jnpf.entity.*; import jnpf.entity.*;
import jnpf.mapper.YysDeviceWarnMapper; import jnpf.mapper.YysDeviceWarnMapper;
import jnpf.service.*; import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.yysdevicewarn.*; import jnpf.model.yysdevicewarn.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil; import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel; import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel; import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel; import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import jnpf.model.QueryModel; import jnpf.model.QueryModel;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel; import jnpf.base.model.ColumnDataModel;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel; import jnpf.database.model.superQuery.SuperJsonModel;
@ -25,13 +36,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import jnpf.util.*; import jnpf.util.*;
import java.util.*; import java.util.*;
import jnpf.base.UserInfo; import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity; import jnpf.permission.entity.UserEntity;
/** /**
*
* yysDeviceWarn * yysDeviceWarn
* V3.5 * V3.5
* https://www.jnpfsoft.com * https://www.jnpfsoft.com
@ -39,7 +54,7 @@ import jnpf.permission.entity.UserEntity;
* 2024-08-09 * 2024-08-09
*/ */
@Service @Service
public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, YysDeviceWarnEntity> implements YysDeviceWarnService{ public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, YysDeviceWarnEntity> implements YysDeviceWarnService {
@Autowired @Autowired
private GeneraterSwapUtil generaterSwapUtil; private GeneraterSwapUtil generaterSwapUtil;
@ -47,233 +62,298 @@ public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, Y
private UserProvider userProvider; private UserProvider userProvider;
@Override @Override
public List<YysDeviceWarnEntity> getList(YysDeviceWarnPagination yysDeviceWarnPagination){ public List<YysDeviceWarnEntity> getList(YysDeviceWarnPagination yysDeviceWarnPagination) {
return getTypeList(yysDeviceWarnPagination,yysDeviceWarnPagination.getDataType()); return getTypeList(yysDeviceWarnPagination, yysDeviceWarnPagination.getDataType());
} }
/** 列表查询 */
/**
*
*/
@Override @Override
public List<YysDeviceWarnEntity> getTypeList(YysDeviceWarnPagination yysDeviceWarnPagination,String dataType){ public List<YysDeviceWarnEntity> getTypeList(YysDeviceWarnPagination yysDeviceWarnPagination, String dataType) {
String userId=userProvider.get().getUserId(); String userId = userProvider.get().getUserId();
List<String> AllIdList =new ArrayList(); List<String> AllIdList = new ArrayList();
List<List<String>> intersectionList =new ArrayList<>(); List<List<String>> intersectionList = new ArrayList<>();
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String columnData = !isPc ? YysDeviceWarnConstant.getAppColumnData() : YysDeviceWarnConstant.getColumnData(); String columnData = !isPc ? YysDeviceWarnConstant.getAppColumnData() : YysDeviceWarnConstant.getColumnData();
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class); ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList()); String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
int total=0; int total = 0;
int yysDeviceWarnNum =0; int yysDeviceWarnNum = 0;
QueryWrapper<YysDeviceWarnEntity> yysDeviceWarnQueryWrapper=new QueryWrapper<>(); QueryWrapper<YysDeviceWarnEntity> yysDeviceWarnQueryWrapper = new QueryWrapper<>();
List<String> allSuperIDlist = new ArrayList<>(); List<String> allSuperIDlist = new ArrayList<>();
String superOp =""; String superOp = "";
if (ObjectUtil.isNotEmpty(yysDeviceWarnPagination.getSuperQueryJson())){ if (ObjectUtil.isNotEmpty(yysDeviceWarnPagination.getSuperQueryJson())) {
List<String> allSuperList = new ArrayList<>(); List<String> allSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>(); List<List<String>> intersectionSuperList = new ArrayList<>();
String queryJson = yysDeviceWarnPagination.getSuperQueryJson(); String queryJson = yysDeviceWarnPagination.getSuperQueryJson();
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class); SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
int superNum = 0; int superNum = 0;
QueryWrapper<YysDeviceWarnEntity> yysDeviceWarnSuperWrapper = new QueryWrapper<>(); QueryWrapper<YysDeviceWarnEntity> yysDeviceWarnSuperWrapper = new QueryWrapper<>();
yysDeviceWarnSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnSuperWrapper,YysDeviceWarnEntity.class,queryJson,"0")); yysDeviceWarnSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnSuperWrapper, YysDeviceWarnEntity.class, queryJson, "0"));
int yysDeviceWarnNum1 = yysDeviceWarnSuperWrapper.getExpression().getNormal().size(); int yysDeviceWarnNum1 = yysDeviceWarnSuperWrapper.getExpression().getNormal().size();
if (yysDeviceWarnNum1>0){ if (yysDeviceWarnNum1 > 0) {
List<String> yysDeviceWarnList =this.list(yysDeviceWarnSuperWrapper).stream().map(YysDeviceWarnEntity::getId).collect(Collectors.toList()); List<String> yysDeviceWarnList = this.list(yysDeviceWarnSuperWrapper).stream().map(YysDeviceWarnEntity::getId).collect(Collectors.toList());
allSuperList.addAll(yysDeviceWarnList); allSuperList.addAll(yysDeviceWarnList);
intersectionSuperList.add(yysDeviceWarnList); intersectionSuperList.add(yysDeviceWarnList);
superNum++; superNum++;
} }
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : ""; superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
//and or //and or
if(superOp.equalsIgnoreCase("and")){ if (superOp.equalsIgnoreCase("and")) {
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList); allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
}else{ } else {
allSuperIDlist = allSuperList; allSuperIDlist = allSuperList;
} }
} }
List<String> allRuleIDlist = new ArrayList<>(); List<String> allRuleIDlist = new ArrayList<>();
String ruleOp =""; String ruleOp = "";
if (ObjectUtil.isNotEmpty(ruleJson)){ if (ObjectUtil.isNotEmpty(ruleJson)) {
List<String> allRuleList = new ArrayList<>(); List<String> allRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>(); List<List<String>> intersectionRuleList = new ArrayList<>();
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class); SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
int ruleNum = 0; int ruleNum = 0;
QueryWrapper<YysDeviceWarnEntity> yysDeviceWarnSuperWrapper = new QueryWrapper<>(); QueryWrapper<YysDeviceWarnEntity> yysDeviceWarnSuperWrapper = new QueryWrapper<>();
yysDeviceWarnSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnSuperWrapper,YysDeviceWarnEntity.class,ruleJson,"0")); yysDeviceWarnSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnSuperWrapper, YysDeviceWarnEntity.class, ruleJson, "0"));
int yysDeviceWarnNum1 = yysDeviceWarnSuperWrapper.getExpression().getNormal().size(); int yysDeviceWarnNum1 = yysDeviceWarnSuperWrapper.getExpression().getNormal().size();
if (yysDeviceWarnNum1>0){ if (yysDeviceWarnNum1 > 0) {
List<String> yysDeviceWarnList =this.list(yysDeviceWarnSuperWrapper).stream().map(YysDeviceWarnEntity::getId).collect(Collectors.toList()); List<String> yysDeviceWarnList = this.list(yysDeviceWarnSuperWrapper).stream().map(YysDeviceWarnEntity::getId).collect(Collectors.toList());
allRuleList.addAll(yysDeviceWarnList); allRuleList.addAll(yysDeviceWarnList);
intersectionRuleList.add(yysDeviceWarnList); intersectionRuleList.add(yysDeviceWarnList);
ruleNum++; ruleNum++;
} }
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : ""; ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
//and or //and or
if(ruleOp.equalsIgnoreCase("and")){ if (ruleOp.equalsIgnoreCase("and")) {
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList); allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
}else{ } else {
allRuleIDlist = allRuleList; allRuleIDlist = allRuleList;
} }
} }
boolean pcPermission = false; boolean pcPermission = false;
boolean appPermission = false; boolean appPermission = false;
if(isPc && pcPermission){ if (isPc && pcPermission) {
if (!userProvider.get().getIsAdministrator()){ if (!userProvider.get().getIsAdministrator()) {
Object yysDeviceWarnObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnQueryWrapper,YysDeviceWarnEntity.class,yysDeviceWarnPagination.getMenuId(),"0")); Object yysDeviceWarnObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnQueryWrapper, YysDeviceWarnEntity.class, yysDeviceWarnPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(yysDeviceWarnObj)){ if (ObjectUtil.isEmpty(yysDeviceWarnObj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
yysDeviceWarnQueryWrapper = (QueryWrapper<YysDeviceWarnEntity>)yysDeviceWarnObj; yysDeviceWarnQueryWrapper = (QueryWrapper<YysDeviceWarnEntity>) yysDeviceWarnObj;
if( yysDeviceWarnQueryWrapper.getExpression().getNormal().size()>0){ if (yysDeviceWarnQueryWrapper.getExpression().getNormal().size() > 0) {
yysDeviceWarnNum++; yysDeviceWarnNum++;
} }
} }
} }
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object yysDeviceWarnObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnQueryWrapper,YysDeviceWarnEntity.class,yysDeviceWarnPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(yysDeviceWarnObj)){
return new ArrayList<>();
} else {
yysDeviceWarnQueryWrapper = (QueryWrapper<YysDeviceWarnEntity>)yysDeviceWarnObj;
if( yysDeviceWarnQueryWrapper.getExpression().getNormal().size()>0){
yysDeviceWarnNum++;
}
} }
if (!isPc && appPermission) {
if (!userProvider.get().getIsAdministrator()) {
Object yysDeviceWarnObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnQueryWrapper, YysDeviceWarnEntity.class, yysDeviceWarnPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(yysDeviceWarnObj)) {
return new ArrayList<>();
} else {
yysDeviceWarnQueryWrapper = (QueryWrapper<YysDeviceWarnEntity>) yysDeviceWarnObj;
if (yysDeviceWarnQueryWrapper.getExpression().getNormal().size() > 0) {
yysDeviceWarnNum++;
}
}
} }
} }
if(isPc){ if (isPc) {
if(ObjectUtil.isNotEmpty(yysDeviceWarnPagination.getProductionLine())){ if (ObjectUtil.isNotEmpty(yysDeviceWarnPagination.getProductionLine())) {
yysDeviceWarnNum++; yysDeviceWarnNum++;
String value = yysDeviceWarnPagination.getProductionLine() instanceof List ? String value = yysDeviceWarnPagination.getProductionLine() instanceof List ?
JsonUtil.getObjectToString(yysDeviceWarnPagination.getProductionLine()) : JsonUtil.getObjectToString(yysDeviceWarnPagination.getProductionLine()) :
String.valueOf(yysDeviceWarnPagination.getProductionLine()); String.valueOf(yysDeviceWarnPagination.getProductionLine());
yysDeviceWarnQueryWrapper.lambda().like(YysDeviceWarnEntity::getProductionLine,value); yysDeviceWarnQueryWrapper.lambda().like(YysDeviceWarnEntity::getProductionLine, value);
} }
if(ObjectUtil.isNotEmpty(yysDeviceWarnPagination.getCreatorTime())){ if (ObjectUtil.isNotEmpty(yysDeviceWarnPagination.getCreatorTime())) {
yysDeviceWarnNum++; yysDeviceWarnNum++;
List CreatorTimeList = JsonUtil.getJsonToList(yysDeviceWarnPagination.getCreatorTime(),String.class); List CreatorTimeList = JsonUtil.getJsonToList(yysDeviceWarnPagination.getCreatorTime(), String.class);
String fir = String.valueOf(CreatorTimeList.get(0)); String fir = String.valueOf(CreatorTimeList.get(0));
String sec = String.valueOf(CreatorTimeList.get(1)); String sec = String.valueOf(CreatorTimeList.get(1));
yysDeviceWarnQueryWrapper.lambda().ge(YysDeviceWarnEntity::getCreatorTime, fir) yysDeviceWarnQueryWrapper.lambda().ge(YysDeviceWarnEntity::getCreatorTime, fir)
.le(YysDeviceWarnEntity::getCreatorTime, sec); .le(YysDeviceWarnEntity::getCreatorTime, sec);
} }
} }
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList); List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total>0){ if (total > 0) {
if (intersection.size()==0){ if (intersection.size() == 0) {
intersection.add("jnpfNullList"); intersection.add("jnpfNullList");
} }
yysDeviceWarnQueryWrapper.lambda().in(YysDeviceWarnEntity::getId, intersection); yysDeviceWarnQueryWrapper.lambda().in(YysDeviceWarnEntity::getId, intersection);
} }
//是否有高级查询 //是否有高级查询
if (StringUtil.isNotEmpty(superOp)){ if (StringUtil.isNotEmpty(superOp)) {
if (allSuperIDlist.size()==0){ if (allSuperIDlist.size() == 0) {
allSuperIDlist.add("jnpfNullList"); allSuperIDlist.add("jnpfNullList");
} }
List<String> finalAllSuperIDlist = allSuperIDlist; List<String> finalAllSuperIDlist = allSuperIDlist;
yysDeviceWarnQueryWrapper.lambda().and(t->t.in(YysDeviceWarnEntity::getId, finalAllSuperIDlist)); yysDeviceWarnQueryWrapper.lambda().and(t -> t.in(YysDeviceWarnEntity::getId, finalAllSuperIDlist));
} }
//是否有数据过滤查询 //是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){ if (StringUtil.isNotEmpty(ruleOp)) {
if (allRuleIDlist.size()==0){ if (allRuleIDlist.size() == 0) {
allRuleIDlist.add("jnpfNullList"); allRuleIDlist.add("jnpfNullList");
} }
List<String> finalAllRuleIDlist = allRuleIDlist; List<String> finalAllRuleIDlist = allRuleIDlist;
yysDeviceWarnQueryWrapper.lambda().and(t->t.in(YysDeviceWarnEntity::getId, finalAllRuleIDlist)); yysDeviceWarnQueryWrapper.lambda().and(t -> t.in(YysDeviceWarnEntity::getId, finalAllRuleIDlist));
} }
//排序 //排序
if(StringUtil.isEmpty(yysDeviceWarnPagination.getSidx())){ if (StringUtil.isEmpty(yysDeviceWarnPagination.getSidx())) {
yysDeviceWarnQueryWrapper.lambda().orderByDesc(YysDeviceWarnEntity::getId); yysDeviceWarnQueryWrapper.lambda().orderByDesc(YysDeviceWarnEntity::getId);
}else{ } else {
try { try {
String sidx = yysDeviceWarnPagination.getSidx(); String sidx = yysDeviceWarnPagination.getSidx();
String[] strs= sidx.split("_name"); String[] strs = sidx.split("_name");
YysDeviceWarnEntity yysDeviceWarnEntity = new YysDeviceWarnEntity(); YysDeviceWarnEntity yysDeviceWarnEntity = new YysDeviceWarnEntity();
Field declaredField = yysDeviceWarnEntity.getClass().getDeclaredField(strs[0]); Field declaredField = yysDeviceWarnEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true); declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value(); String value = declaredField.getAnnotation(TableField.class).value();
yysDeviceWarnQueryWrapper="asc".equals(yysDeviceWarnPagination.getSort().toLowerCase())?yysDeviceWarnQueryWrapper.orderByAsc(value):yysDeviceWarnQueryWrapper.orderByDesc(value); yysDeviceWarnQueryWrapper = "asc".equals(yysDeviceWarnPagination.getSort().toLowerCase()) ? yysDeviceWarnQueryWrapper.orderByAsc(value) : yysDeviceWarnQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if("0".equals(dataType)){ if ("0".equals(dataType)) {
if((total>0 && AllIdList.size()>0) || total==0){ if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<YysDeviceWarnEntity> page=new Page<>(yysDeviceWarnPagination.getCurrentPage(), yysDeviceWarnPagination.getPageSize()); Page<YysDeviceWarnEntity> page = new Page<>(yysDeviceWarnPagination.getCurrentPage(), yysDeviceWarnPagination.getPageSize());
IPage<YysDeviceWarnEntity> userIPage=this.page(page, yysDeviceWarnQueryWrapper); IPage<YysDeviceWarnEntity> userIPage = this.page(page, yysDeviceWarnQueryWrapper);
return yysDeviceWarnPagination.setData(userIPage.getRecords(),userIPage.getTotal()); return yysDeviceWarnPagination.setData(userIPage.getRecords(), userIPage.getTotal());
}else{ } else {
List<YysDeviceWarnEntity> list = new ArrayList(); List<YysDeviceWarnEntity> list = new ArrayList();
return yysDeviceWarnPagination.setData(list, list.size()); return yysDeviceWarnPagination.setData(list, list.size());
} }
}else{ } else {
return this.list(yysDeviceWarnQueryWrapper); return this.list(yysDeviceWarnQueryWrapper);
} }
} }
@Override @Override
public YysDeviceWarnEntity getInfo(String id){ public YysDeviceWarnEntity getInfo(String id) {
QueryWrapper<YysDeviceWarnEntity> queryWrapper=new QueryWrapper<>(); QueryWrapper<YysDeviceWarnEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(YysDeviceWarnEntity::getId,id); queryWrapper.lambda().eq(YysDeviceWarnEntity::getId, id);
return this.getOne(queryWrapper); return this.getOne(queryWrapper);
} }
@Override @Override
public void create(YysDeviceWarnEntity entity){ public void create(YysDeviceWarnEntity entity) {
this.save(entity); this.save(entity);
} }
@Override @Override
public boolean update(String id, YysDeviceWarnEntity entity){ public boolean update(String id, YysDeviceWarnEntity entity) {
return this.updateById(entity); return this.updateById(entity);
} }
@Override @Override
public void delete(YysDeviceWarnEntity entity){ public void delete(YysDeviceWarnEntity entity) {
if(entity!=null){ if (entity != null) {
this.removeById(entity.getId()); this.removeById(entity.getId());
} }
} }
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override @Override
public String checkForm(YysDeviceWarnForm form,int i) { public String checkForm(YysDeviceWarnForm form, int i) {
boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0"); boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id=""; String id = "";
String countRecover = ""; String countRecover = "";
if (isUp){ if (isUp) {
id = form.getId(); id = form.getId();
} }
//主表字段验证 //主表字段验证
return countRecover; return countRecover;
} }
/** /**
* () * ()
* @param id *
* @param yysDeviceWarnForm * @param id
* @return * @param yysDeviceWarnForm
*/ * @return
*/
@Override @Override
@Transactional @Transactional
public void saveOrUpdate(YysDeviceWarnForm yysDeviceWarnForm,String id, boolean isSave) throws Exception{ public void saveOrUpdate(YysDeviceWarnForm yysDeviceWarnForm, String id, boolean isSave) throws Exception {
UserInfo userInfo=userProvider.get(); UserInfo userInfo = userProvider.get();
UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId()); UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
yysDeviceWarnForm = JsonUtil.getJsonToBean( yysDeviceWarnForm = JsonUtil.getJsonToBean(
generaterSwapUtil.swapDatetime(YysDeviceWarnConstant.getFormData(),yysDeviceWarnForm),YysDeviceWarnForm.class); generaterSwapUtil.swapDatetime(YysDeviceWarnConstant.getFormData(), yysDeviceWarnForm), YysDeviceWarnForm.class);
YysDeviceWarnEntity entity = JsonUtil.getJsonToBean(yysDeviceWarnForm, YysDeviceWarnEntity.class); YysDeviceWarnEntity entity = JsonUtil.getJsonToBean(yysDeviceWarnForm, YysDeviceWarnEntity.class);
if(isSave){ if (isSave) {
String mainId = RandomUtil.uuId() ; String mainId = RandomUtil.uuId();
entity.setId(mainId); entity.setId(mainId);
}else{ } else {
} }
this.saveOrUpdate(entity); this.saveOrUpdate(entity);
} }
@Override
public void syncCount(List<YysDeviceWarnStatisticsEntity> collect) {
if (CollectionUtils.isEmpty(collect)) {
return;
}
Map<String, List<YysDeviceWarnStatisticsEntity>> collect1 = collect
.stream().collect(Collectors.groupingBy(entity -> String.join("-", entity.getDeviceName(), entity.getWarnType(), entity.getWarnDetails())));
LambdaQueryWrapper<YysDeviceWarnEntity> wrapper = new LambdaQueryWrapper<>(YysDeviceWarnEntity.class);
wrapper.isNull(YysDeviceWarnEntity::getDeleteMark);
List<YysDeviceWarnEntity> list = this.list(wrapper);
if (CollectionUtils.isEmpty(list)) {
List<YysDeviceWarnEntity> result = Lists.newArrayList();
for (Map.Entry<String, List<YysDeviceWarnStatisticsEntity>> entry : collect1.entrySet()) {
String mainId = RandomUtil.uuId();
YysDeviceWarnStatisticsEntity entity1 = entry.getValue().get(0);
YysDeviceWarnEntity entity = new YysDeviceWarnEntity();
entity.setId(mainId);
entity.setProductionLine(entity1.getDeviceName());
entity.setProductionTime(entity1.getProductionTime());
entity.setWarnName(entity1.getWarnType());
entity.setWarnDetails(entity1.getWarnDetails());
entity.setWarnNums(String.valueOf(entry.getValue().size()));
entity.setCreatorUserId(userProvider.get().getUserId());
entity.setCreatorTime(DateUtil.getNowDate());
result.add(entity);
}
this.saveBatch(result);
} else {
for (YysDeviceWarnEntity entity : list) {
String key = String.join("-", entity.getProductionLine(), entity.getWarnName(), entity.getWarnDetails());
if (collect1.containsKey(key)) {
entity.setWarnNums(String.valueOf(Integer.parseInt(entity.getWarnNums()) + collect1.get(key).size()));
} else {
List<YysDeviceWarnStatisticsEntity> entities = collect1.get(key);
String mainId = RandomUtil.uuId();
YysDeviceWarnStatisticsEntity entity2 = entities.get(0);
YysDeviceWarnEntity entity3 = new YysDeviceWarnEntity();
entity3.setId(mainId);
entity3.setProductionLine(entity2.getDeviceName());
entity3.setProductionTime(entity2.getProductionTime());
entity3.setWarnName(entity2.getWarnType());
entity3.setWarnDetails(entity2.getWarnDetails());
entity3.setWarnNums(String.valueOf(entities.size()));
entity3.setCreatorUserId(userProvider.get().getUserId());
entity3.setCreatorTime(DateUtil.getNowDate());
list.add(entity);
}
}
this.saveOrUpdateBatch(list);
}
}
} }

@ -1,23 +1,37 @@
package jnpf.service.impl; package jnpf.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.google.common.collect.Lists;
import jnpf.entity.*; import jnpf.entity.*;
import jnpf.mapper.YysDeviceWarnStatisticsMapper; import jnpf.mapper.YysDeviceWarnStatisticsMapper;
import jnpf.service.*; import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.yysdevicewarnstatistics.*; import jnpf.model.yysdevicewarnstatistics.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil; import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel; import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel; import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel; import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import jnpf.model.QueryModel; import jnpf.model.QueryModel;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel; import jnpf.base.model.ColumnDataModel;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel; import jnpf.database.model.superQuery.SuperJsonModel;
@ -25,13 +39,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import jnpf.util.*; import jnpf.util.*;
import java.util.*; import java.util.*;
import jnpf.base.UserInfo; import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity; import jnpf.permission.entity.UserEntity;
/** /**
*
* yysDeviceWarnStatistics * yysDeviceWarnStatistics
* V3.5 * V3.5
* https://www.jnpfsoft.com * https://www.jnpfsoft.com
@ -39,242 +57,275 @@ import jnpf.permission.entity.UserEntity;
* 2024-08-09 * 2024-08-09
*/ */
@Service @Service
public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWarnStatisticsMapper, YysDeviceWarnStatisticsEntity> implements YysDeviceWarnStatisticsService{ public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWarnStatisticsMapper, YysDeviceWarnStatisticsEntity> implements YysDeviceWarnStatisticsService {
@Autowired @Autowired
private GeneraterSwapUtil generaterSwapUtil; private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired @Autowired
private UserProvider userProvider; private UserProvider userProvider;
@Override @Override
public List<YysDeviceWarnStatisticsEntity> getList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination){ public List<YysDeviceWarnStatisticsEntity> getList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination) {
return getTypeList(yysDeviceWarnStatisticsPagination,yysDeviceWarnStatisticsPagination.getDataType()); return getTypeList(yysDeviceWarnStatisticsPagination, yysDeviceWarnStatisticsPagination.getDataType());
} }
/** 列表查询 */
/**
*
*/
@Override @Override
public List<YysDeviceWarnStatisticsEntity> getTypeList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination,String dataType){ public List<YysDeviceWarnStatisticsEntity> getTypeList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination, String dataType) {
String userId=userProvider.get().getUserId(); String userId = userProvider.get().getUserId();
List<String> AllIdList =new ArrayList(); List<String> AllIdList = new ArrayList();
List<List<String>> intersectionList =new ArrayList<>(); List<List<String>> intersectionList = new ArrayList<>();
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
String columnData = !isPc ? YysDeviceWarnStatisticsConstant.getAppColumnData() : YysDeviceWarnStatisticsConstant.getColumnData(); String columnData = !isPc ? YysDeviceWarnStatisticsConstant.getAppColumnData() : YysDeviceWarnStatisticsConstant.getColumnData();
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class); ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList()); String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
int total=0; int total = 0;
int yysDeviceWarnStatisticsNum =0; int yysDeviceWarnStatisticsNum = 0;
QueryWrapper<YysDeviceWarnStatisticsEntity> yysDeviceWarnStatisticsQueryWrapper=new QueryWrapper<>(); QueryWrapper<YysDeviceWarnStatisticsEntity> yysDeviceWarnStatisticsQueryWrapper = new QueryWrapper<>();
List<String> allSuperIDlist = new ArrayList<>(); List<String> allSuperIDlist = new ArrayList<>();
String superOp =""; String superOp = "";
if (ObjectUtil.isNotEmpty(yysDeviceWarnStatisticsPagination.getSuperQueryJson())){ if (ObjectUtil.isNotEmpty(yysDeviceWarnStatisticsPagination.getSuperQueryJson())) {
List<String> allSuperList = new ArrayList<>(); List<String> allSuperList = new ArrayList<>();
List<List<String>> intersectionSuperList = new ArrayList<>(); List<List<String>> intersectionSuperList = new ArrayList<>();
String queryJson = yysDeviceWarnStatisticsPagination.getSuperQueryJson(); String queryJson = yysDeviceWarnStatisticsPagination.getSuperQueryJson();
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class); SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
int superNum = 0; int superNum = 0;
QueryWrapper<YysDeviceWarnStatisticsEntity> yysDeviceWarnStatisticsSuperWrapper = new QueryWrapper<>(); QueryWrapper<YysDeviceWarnStatisticsEntity> yysDeviceWarnStatisticsSuperWrapper = new QueryWrapper<>();
yysDeviceWarnStatisticsSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnStatisticsSuperWrapper,YysDeviceWarnStatisticsEntity.class,queryJson,"0")); yysDeviceWarnStatisticsSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnStatisticsSuperWrapper, YysDeviceWarnStatisticsEntity.class, queryJson, "0"));
int yysDeviceWarnStatisticsNum1 = yysDeviceWarnStatisticsSuperWrapper.getExpression().getNormal().size(); int yysDeviceWarnStatisticsNum1 = yysDeviceWarnStatisticsSuperWrapper.getExpression().getNormal().size();
if (yysDeviceWarnStatisticsNum1>0){ if (yysDeviceWarnStatisticsNum1 > 0) {
List<String> yysDeviceWarnStatisticsList =this.list(yysDeviceWarnStatisticsSuperWrapper).stream().map(YysDeviceWarnStatisticsEntity::getId).collect(Collectors.toList()); List<String> yysDeviceWarnStatisticsList = this.list(yysDeviceWarnStatisticsSuperWrapper).stream().map(YysDeviceWarnStatisticsEntity::getId).collect(Collectors.toList());
allSuperList.addAll(yysDeviceWarnStatisticsList); allSuperList.addAll(yysDeviceWarnStatisticsList);
intersectionSuperList.add(yysDeviceWarnStatisticsList); intersectionSuperList.add(yysDeviceWarnStatisticsList);
superNum++; superNum++;
} }
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : ""; superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
//and or //and or
if(superOp.equalsIgnoreCase("and")){ if (superOp.equalsIgnoreCase("and")) {
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList); allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
}else{ } else {
allSuperIDlist = allSuperList; allSuperIDlist = allSuperList;
} }
} }
List<String> allRuleIDlist = new ArrayList<>(); List<String> allRuleIDlist = new ArrayList<>();
String ruleOp =""; String ruleOp = "";
if (ObjectUtil.isNotEmpty(ruleJson)){ if (ObjectUtil.isNotEmpty(ruleJson)) {
List<String> allRuleList = new ArrayList<>(); List<String> allRuleList = new ArrayList<>();
List<List<String>> intersectionRuleList = new ArrayList<>(); List<List<String>> intersectionRuleList = new ArrayList<>();
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class); SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
int ruleNum = 0; int ruleNum = 0;
QueryWrapper<YysDeviceWarnStatisticsEntity> yysDeviceWarnStatisticsSuperWrapper = new QueryWrapper<>(); QueryWrapper<YysDeviceWarnStatisticsEntity> yysDeviceWarnStatisticsSuperWrapper = new QueryWrapper<>();
yysDeviceWarnStatisticsSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnStatisticsSuperWrapper,YysDeviceWarnStatisticsEntity.class,ruleJson,"0")); yysDeviceWarnStatisticsSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(yysDeviceWarnStatisticsSuperWrapper, YysDeviceWarnStatisticsEntity.class, ruleJson, "0"));
int yysDeviceWarnStatisticsNum1 = yysDeviceWarnStatisticsSuperWrapper.getExpression().getNormal().size(); int yysDeviceWarnStatisticsNum1 = yysDeviceWarnStatisticsSuperWrapper.getExpression().getNormal().size();
if (yysDeviceWarnStatisticsNum1>0){ if (yysDeviceWarnStatisticsNum1 > 0) {
List<String> yysDeviceWarnStatisticsList =this.list(yysDeviceWarnStatisticsSuperWrapper).stream().map(YysDeviceWarnStatisticsEntity::getId).collect(Collectors.toList()); List<String> yysDeviceWarnStatisticsList = this.list(yysDeviceWarnStatisticsSuperWrapper).stream().map(YysDeviceWarnStatisticsEntity::getId).collect(Collectors.toList());
allRuleList.addAll(yysDeviceWarnStatisticsList); allRuleList.addAll(yysDeviceWarnStatisticsList);
intersectionRuleList.add(yysDeviceWarnStatisticsList); intersectionRuleList.add(yysDeviceWarnStatisticsList);
ruleNum++; ruleNum++;
} }
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : ""; ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
//and or //and or
if(ruleOp.equalsIgnoreCase("and")){ if (ruleOp.equalsIgnoreCase("and")) {
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList); allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
}else{ } else {
allRuleIDlist = allRuleList; allRuleIDlist = allRuleList;
} }
} }
boolean pcPermission = false; boolean pcPermission = false;
boolean appPermission = false; boolean appPermission = false;
if(isPc && pcPermission){ if (isPc && pcPermission) {
if (!userProvider.get().getIsAdministrator()){ if (!userProvider.get().getIsAdministrator()) {
Object yysDeviceWarnStatisticsObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnStatisticsQueryWrapper,YysDeviceWarnStatisticsEntity.class,yysDeviceWarnStatisticsPagination.getMenuId(),"0")); Object yysDeviceWarnStatisticsObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnStatisticsQueryWrapper, YysDeviceWarnStatisticsEntity.class, yysDeviceWarnStatisticsPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(yysDeviceWarnStatisticsObj)){ if (ObjectUtil.isEmpty(yysDeviceWarnStatisticsObj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
yysDeviceWarnStatisticsQueryWrapper = (QueryWrapper<YysDeviceWarnStatisticsEntity>)yysDeviceWarnStatisticsObj; yysDeviceWarnStatisticsQueryWrapper = (QueryWrapper<YysDeviceWarnStatisticsEntity>) yysDeviceWarnStatisticsObj;
if( yysDeviceWarnStatisticsQueryWrapper.getExpression().getNormal().size()>0){ if (yysDeviceWarnStatisticsQueryWrapper.getExpression().getNormal().size() > 0) {
yysDeviceWarnStatisticsNum++; yysDeviceWarnStatisticsNum++;
} }
} }
} }
}
if(!isPc && appPermission){
if (!userProvider.get().getIsAdministrator()){
Object yysDeviceWarnStatisticsObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnStatisticsQueryWrapper,YysDeviceWarnStatisticsEntity.class,yysDeviceWarnStatisticsPagination.getMenuId(),"0"));
if (ObjectUtil.isEmpty(yysDeviceWarnStatisticsObj)){
return new ArrayList<>();
} else {
yysDeviceWarnStatisticsQueryWrapper = (QueryWrapper<YysDeviceWarnStatisticsEntity>)yysDeviceWarnStatisticsObj;
if( yysDeviceWarnStatisticsQueryWrapper.getExpression().getNormal().size()>0){
yysDeviceWarnStatisticsNum++;
}
} }
if (!isPc && appPermission) {
if (!userProvider.get().getIsAdministrator()) {
Object yysDeviceWarnStatisticsObj = generaterSwapUtil.getAuthorizeCondition(new QueryModel(yysDeviceWarnStatisticsQueryWrapper, YysDeviceWarnStatisticsEntity.class, yysDeviceWarnStatisticsPagination.getMenuId(), "0"));
if (ObjectUtil.isEmpty(yysDeviceWarnStatisticsObj)) {
return new ArrayList<>();
} else {
yysDeviceWarnStatisticsQueryWrapper = (QueryWrapper<YysDeviceWarnStatisticsEntity>) yysDeviceWarnStatisticsObj;
if (yysDeviceWarnStatisticsQueryWrapper.getExpression().getNormal().size() > 0) {
yysDeviceWarnStatisticsNum++;
}
}
} }
} }
if(isPc){ if (isPc) {
if(ObjectUtil.isNotEmpty(yysDeviceWarnStatisticsPagination.getProductionLine())){ if (ObjectUtil.isNotEmpty(yysDeviceWarnStatisticsPagination.getProductionLine())) {
yysDeviceWarnStatisticsNum++; yysDeviceWarnStatisticsNum++;
String value = yysDeviceWarnStatisticsPagination.getProductionLine() instanceof List ? String value = yysDeviceWarnStatisticsPagination.getProductionLine() instanceof List ?
JsonUtil.getObjectToString(yysDeviceWarnStatisticsPagination.getProductionLine()) : JsonUtil.getObjectToString(yysDeviceWarnStatisticsPagination.getProductionLine()) :
String.valueOf(yysDeviceWarnStatisticsPagination.getProductionLine()); String.valueOf(yysDeviceWarnStatisticsPagination.getProductionLine());
yysDeviceWarnStatisticsQueryWrapper.lambda().like(YysDeviceWarnStatisticsEntity::getProductionLine,value); yysDeviceWarnStatisticsQueryWrapper.lambda().like(YysDeviceWarnStatisticsEntity::getProductionLine, value);
} }
if(ObjectUtil.isNotEmpty(yysDeviceWarnStatisticsPagination.getCreatTime())){ if (ObjectUtil.isNotEmpty(yysDeviceWarnStatisticsPagination.getCreatTime())) {
yysDeviceWarnStatisticsNum++; yysDeviceWarnStatisticsNum++;
List CreatTimeList = JsonUtil.getJsonToList(yysDeviceWarnStatisticsPagination.getCreatTime(),String.class); List CreatTimeList = JsonUtil.getJsonToList(yysDeviceWarnStatisticsPagination.getCreatTime(), String.class);
Long fir = Long.valueOf(String.valueOf(CreatTimeList.get(0))); Long fir = Long.valueOf(String.valueOf(CreatTimeList.get(0)));
Long sec = Long.valueOf(String.valueOf(CreatTimeList.get(1))); Long sec = Long.valueOf(String.valueOf(CreatTimeList.get(1)));
yysDeviceWarnStatisticsQueryWrapper.lambda().ge(YysDeviceWarnStatisticsEntity::getCreatTime, new Date(fir)) yysDeviceWarnStatisticsQueryWrapper.lambda().ge(YysDeviceWarnStatisticsEntity::getCreatTime, new Date(fir))
.le(YysDeviceWarnStatisticsEntity::getCreatTime, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59")); .le(YysDeviceWarnStatisticsEntity::getCreatTime, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59"));
} }
} }
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList); List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
if (total>0){ if (total > 0) {
if (intersection.size()==0){ if (intersection.size() == 0) {
intersection.add("jnpfNullList"); intersection.add("jnpfNullList");
} }
yysDeviceWarnStatisticsQueryWrapper.lambda().in(YysDeviceWarnStatisticsEntity::getId, intersection); yysDeviceWarnStatisticsQueryWrapper.lambda().in(YysDeviceWarnStatisticsEntity::getId, intersection);
} }
//是否有高级查询 //是否有高级查询
if (StringUtil.isNotEmpty(superOp)){ if (StringUtil.isNotEmpty(superOp)) {
if (allSuperIDlist.size()==0){ if (allSuperIDlist.size() == 0) {
allSuperIDlist.add("jnpfNullList"); allSuperIDlist.add("jnpfNullList");
} }
List<String> finalAllSuperIDlist = allSuperIDlist; List<String> finalAllSuperIDlist = allSuperIDlist;
yysDeviceWarnStatisticsQueryWrapper.lambda().and(t->t.in(YysDeviceWarnStatisticsEntity::getId, finalAllSuperIDlist)); yysDeviceWarnStatisticsQueryWrapper.lambda().and(t -> t.in(YysDeviceWarnStatisticsEntity::getId, finalAllSuperIDlist));
} }
//是否有数据过滤查询 //是否有数据过滤查询
if (StringUtil.isNotEmpty(ruleOp)){ if (StringUtil.isNotEmpty(ruleOp)) {
if (allRuleIDlist.size()==0){ if (allRuleIDlist.size() == 0) {
allRuleIDlist.add("jnpfNullList"); allRuleIDlist.add("jnpfNullList");
} }
List<String> finalAllRuleIDlist = allRuleIDlist; List<String> finalAllRuleIDlist = allRuleIDlist;
yysDeviceWarnStatisticsQueryWrapper.lambda().and(t->t.in(YysDeviceWarnStatisticsEntity::getId, finalAllRuleIDlist)); yysDeviceWarnStatisticsQueryWrapper.lambda().and(t -> t.in(YysDeviceWarnStatisticsEntity::getId, finalAllRuleIDlist));
} }
//排序 //排序
if(StringUtil.isEmpty(yysDeviceWarnStatisticsPagination.getSidx())){ if (StringUtil.isEmpty(yysDeviceWarnStatisticsPagination.getSidx())) {
yysDeviceWarnStatisticsQueryWrapper.lambda().orderByDesc(YysDeviceWarnStatisticsEntity::getId); yysDeviceWarnStatisticsQueryWrapper.lambda().orderByDesc(YysDeviceWarnStatisticsEntity::getId);
}else{ } else {
try { try {
String sidx = yysDeviceWarnStatisticsPagination.getSidx(); String sidx = yysDeviceWarnStatisticsPagination.getSidx();
String[] strs= sidx.split("_name"); String[] strs = sidx.split("_name");
YysDeviceWarnStatisticsEntity yysDeviceWarnStatisticsEntity = new YysDeviceWarnStatisticsEntity(); YysDeviceWarnStatisticsEntity yysDeviceWarnStatisticsEntity = new YysDeviceWarnStatisticsEntity();
Field declaredField = yysDeviceWarnStatisticsEntity.getClass().getDeclaredField(strs[0]); Field declaredField = yysDeviceWarnStatisticsEntity.getClass().getDeclaredField(strs[0]);
declaredField.setAccessible(true); declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value(); String value = declaredField.getAnnotation(TableField.class).value();
yysDeviceWarnStatisticsQueryWrapper="asc".equals(yysDeviceWarnStatisticsPagination.getSort().toLowerCase())?yysDeviceWarnStatisticsQueryWrapper.orderByAsc(value):yysDeviceWarnStatisticsQueryWrapper.orderByDesc(value); yysDeviceWarnStatisticsQueryWrapper = "asc".equals(yysDeviceWarnStatisticsPagination.getSort().toLowerCase()) ? yysDeviceWarnStatisticsQueryWrapper.orderByAsc(value) : yysDeviceWarnStatisticsQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if("0".equals(dataType)){ if ("0".equals(dataType)) {
if((total>0 && AllIdList.size()>0) || total==0){ if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<YysDeviceWarnStatisticsEntity> page=new Page<>(yysDeviceWarnStatisticsPagination.getCurrentPage(), yysDeviceWarnStatisticsPagination.getPageSize()); Page<YysDeviceWarnStatisticsEntity> page = new Page<>(yysDeviceWarnStatisticsPagination.getCurrentPage(), yysDeviceWarnStatisticsPagination.getPageSize());
IPage<YysDeviceWarnStatisticsEntity> userIPage=this.page(page, yysDeviceWarnStatisticsQueryWrapper); IPage<YysDeviceWarnStatisticsEntity> userIPage = this.page(page, yysDeviceWarnStatisticsQueryWrapper);
return yysDeviceWarnStatisticsPagination.setData(userIPage.getRecords(),userIPage.getTotal()); return yysDeviceWarnStatisticsPagination.setData(userIPage.getRecords(), userIPage.getTotal());
}else{ } else {
List<YysDeviceWarnStatisticsEntity> list = new ArrayList(); List<YysDeviceWarnStatisticsEntity> list = new ArrayList();
return yysDeviceWarnStatisticsPagination.setData(list, list.size()); return yysDeviceWarnStatisticsPagination.setData(list, list.size());
} }
}else{ } else {
return this.list(yysDeviceWarnStatisticsQueryWrapper); return this.list(yysDeviceWarnStatisticsQueryWrapper);
} }
} }
@Override @Override
public YysDeviceWarnStatisticsEntity getInfo(String id){ public YysDeviceWarnStatisticsEntity getInfo(String id) {
QueryWrapper<YysDeviceWarnStatisticsEntity> queryWrapper=new QueryWrapper<>(); QueryWrapper<YysDeviceWarnStatisticsEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(YysDeviceWarnStatisticsEntity::getId,id); queryWrapper.lambda().eq(YysDeviceWarnStatisticsEntity::getId, id);
return this.getOne(queryWrapper); return this.getOne(queryWrapper);
} }
@Override @Override
public void create(YysDeviceWarnStatisticsEntity entity){ public void create(YysDeviceWarnStatisticsEntity entity) {
this.save(entity); this.save(entity);
} }
@Override @Override
public boolean update(String id, YysDeviceWarnStatisticsEntity entity){ public boolean update(String id, YysDeviceWarnStatisticsEntity entity) {
return this.updateById(entity); return this.updateById(entity);
} }
@Override @Override
public void delete(YysDeviceWarnStatisticsEntity entity){ public void delete(YysDeviceWarnStatisticsEntity entity) {
if(entity!=null){ if (entity != null) {
this.removeById(entity.getId()); this.removeById(entity.getId());
} }
} }
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override @Override
public String checkForm(YysDeviceWarnStatisticsForm form,int i) { public String checkForm(YysDeviceWarnStatisticsForm form, int i) {
boolean isUp =StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0"); boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
String id=""; String id = "";
String countRecover = ""; String countRecover = "";
if (isUp){ if (isUp) {
id = form.getId(); id = form.getId();
} }
//主表字段验证 //主表字段验证
return countRecover; return countRecover;
} }
/** /**
* () * ()
* @param id *
* @param yysDeviceWarnStatisticsForm * @param id
* @return * @param yysDeviceWarnStatisticsForm
*/ * @return
*/
@Override @Override
@Transactional @Transactional
public void saveOrUpdate(YysDeviceWarnStatisticsForm yysDeviceWarnStatisticsForm,String id, boolean isSave) throws Exception{ public void saveOrUpdate(YysDeviceWarnStatisticsForm yysDeviceWarnStatisticsForm, String id, boolean isSave) throws Exception {
UserInfo userInfo=userProvider.get(); UserInfo userInfo = userProvider.get();
UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId()); UserEntity userEntity = generaterSwapUtil.getUser(userInfo.getUserId());
yysDeviceWarnStatisticsForm = JsonUtil.getJsonToBean( yysDeviceWarnStatisticsForm = JsonUtil.getJsonToBean(
generaterSwapUtil.swapDatetime(YysDeviceWarnStatisticsConstant.getFormData(),yysDeviceWarnStatisticsForm),YysDeviceWarnStatisticsForm.class); generaterSwapUtil.swapDatetime(YysDeviceWarnStatisticsConstant.getFormData(), yysDeviceWarnStatisticsForm), YysDeviceWarnStatisticsForm.class);
YysDeviceWarnStatisticsEntity entity = JsonUtil.getJsonToBean(yysDeviceWarnStatisticsForm, YysDeviceWarnStatisticsEntity.class); YysDeviceWarnStatisticsEntity entity = JsonUtil.getJsonToBean(yysDeviceWarnStatisticsForm, YysDeviceWarnStatisticsEntity.class);
if(isSave){ if (isSave) {
String mainId = RandomUtil.uuId() ; String mainId = RandomUtil.uuId();
entity.setId(mainId); entity.setId(mainId);
}else{ } else {
} }
this.saveOrUpdate(entity); this.saveOrUpdate(entity);
} }
@Override
@DS("slave_1")
public List<EqmtCollectExceptMasterEntity> syncData(List<Long> syncIds) {
List<EqmtCollectExceptMasterEntity> result = Lists.newArrayList();
String[] lines = new String[]{"1", "2", "3", "4"};
for (String line : lines) {
String childTable = "eqmt_collect_data_sc_" + line;
String sql = "select b.*," + line + " as line from " + childTable + " a left join eqmt_collect_except_master b on a.eqmt_id = b.eqmt_id";
RowMapper<EqmtCollectExceptMasterEntity> rowMapper = new BeanPropertyRowMapper<>(EqmtCollectExceptMasterEntity.class);
result.addAll(this.jdbcTemplate.query(sql, rowMapper));
}
if (CollectionUtils.isEmpty(syncIds)) {
return result;
}
//过滤出已经生成的
return result.stream().filter(obj -> !syncIds.contains(obj.getId())).collect(Collectors.toList());
}
} }

@ -0,0 +1,24 @@
package jnpf.entity;
import lombok.Data;
import java.util.Date;
@Data
public class EqmtCollectExceptMasterEntity {
private Long id;
private Date gmtCreate;
private Date gmtModified;
private Long collectId;
private Long eqmtId;
private String exceptType;
private String exceptTypeName;
private String registorAddress;
private String exceptMessage;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String sysOrgCode;
private String line;
}

@ -0,0 +1,39 @@
package jnpf.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class EqmtCollectPubDataEntity {
private Long id;
private Long eqmtId;
private String productType;
private Double speed;
private Integer totalProductQty;
private Integer intradayProductQty;
private Integer intradayOkQty;
private Integer intradayNgQty;
private BigDecimal intradayYieldRate;
private Long intradayEqmtRunTime;
private Long intradayEqmtWorkTime;
private Double intradayEqmtWorkRate;
private Long intradayEqmtStopTime;
private Integer intradayEqmtStopTimes;
private String eqmtStatus;
private String eqmtExceptFlag;
private String eqmtAlarmFlag;
private Date gmtCreate;
private Long collectId;
private Date gmtModified;
private BigDecimal oee;
private String productTypeName;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
private String sysOrgCode;
private String line;
}

@ -50,6 +50,8 @@ public class YysDeviceDataEntity {
private String dayStopNum; private String dayStopNum;
@TableField(value = "OEE" , updateStrategy = FieldStrategy.IGNORED) @TableField(value = "OEE" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal oee; private BigDecimal oee;
@TableField(value = "SYNCID" , updateStrategy = FieldStrategy.IGNORED)
private Long syncId;
@TableField("F_CREATOR_TIME") @TableField("F_CREATOR_TIME")
private Date creatorTime; private Date creatorTime;
@TableField("F_CREATOR_USER_ID") @TableField("F_CREATOR_USER_ID")

@ -30,6 +30,8 @@ public class YysDeviceWarnStatisticsEntity {
private String warnDetails; private String warnDetails;
@TableField(value = "WARN_TYPE" , updateStrategy = FieldStrategy.IGNORED) @TableField(value = "WARN_TYPE" , updateStrategy = FieldStrategy.IGNORED)
private String warnType; private String warnType;
@TableField(value = "SYNCID" , updateStrategy = FieldStrategy.IGNORED)
private Long syncId;
@TableField("F_CREATOR_TIME") @TableField("F_CREATOR_TIME")
private Date creatorTime; private Date creatorTime;
@TableField("F_CREATOR_USER_ID") @TableField("F_CREATOR_USER_ID")

@ -27,6 +27,11 @@
<artifactId>jnpf-system-biz</artifactId> <artifactId>jnpf-system-biz</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.jnpf</groupId>
<artifactId>jnpf-example-biz</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

@ -0,0 +1,111 @@
package jnpf.scheduletask.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.xxl.job.core.handler.annotation.XxlJob;
import jnpf.entity.EqmtCollectExceptMasterEntity;
import jnpf.entity.EqmtCollectPubDataEntity;
import jnpf.entity.YysDeviceDataEntity;
import jnpf.entity.YysDeviceWarnStatisticsEntity;
import jnpf.service.YysDeviceDataService;
import jnpf.service.YysDeviceWarnService;
import jnpf.service.YysDeviceWarnStatisticsService;
import jnpf.util.DateUtil;
import jnpf.util.RandomUtil;
import jnpf.util.UserProvider;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@Component
public class YysTaskHandler {
@Resource
private YysDeviceDataService yysDeviceDataService;
@Resource
private YysDeviceWarnStatisticsService yysDeviceWarnStatisticsService;
@Resource
private YysDeviceWarnService yysDeviceWarnService;
@Autowired
private UserProvider userProvider;
//每十分钟执行一次
@XxlJob("syncDeviceData")
public void syncDeviceData() {
//查询表中数据
LambdaQueryWrapper<YysDeviceDataEntity> wrapper = new LambdaQueryWrapper<>(YysDeviceDataEntity.class);
wrapper.isNull(YysDeviceDataEntity::getDeleteMark);
List<YysDeviceDataEntity> list1 = yysDeviceDataService.list(wrapper);
List<EqmtCollectPubDataEntity> list = yysDeviceDataService.syncData(list1.stream().map(YysDeviceDataEntity::getSyncId).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(list)) {
return;
}
List<YysDeviceDataEntity> collect = list.stream().map(obj -> {
String mainId = RandomUtil.uuId();
YysDeviceDataEntity entity = new YysDeviceDataEntity();
entity.setId(mainId);
entity.setProductionLine(obj.getLine());
entity.setProductionTime(obj.getGmtCreate());
entity.setCreatorTime(obj.getCreateTime());
entity.setProductionModels(obj.getProductType());
entity.setProductionName(obj.getProductTypeName());
entity.setProductionSpeed(String.valueOf(obj.getSpeed()));
entity.setProductionNum(String.valueOf(obj.getTotalProductQty()));
entity.setDayNum(String.valueOf(obj.getIntradayProductQty()));
entity.setDayQualifiedNum(String.valueOf(obj.getIntradayOkQty()));
entity.setDayBadNum(String.valueOf(obj.getIntradayNgQty()));
entity.setDayPassRate(obj.getIntradayYieldRate());
entity.setDayOnTime(String.valueOf(obj.getIntradayEqmtRunTime()));
entity.setDayLoadingTime(String.valueOf(obj.getIntradayEqmtWorkTime()));
entity.setDayStopTime(String.valueOf(obj.getIntradayEqmtStopTime()));
entity.setDayStopNum(String.valueOf(obj.getIntradayEqmtStopTimes()));
entity.setOee(obj.getOee());
entity.setSyncId(obj.getId());
entity.setCreatorUserId(userProvider.get().getUserId());
return entity;
}).collect(Collectors.toList());
//批量存储
yysDeviceDataService.saveBatch(collect);
}
//每十分钟执行一次
@XxlJob("syncDeviceWarnData")
public void syncDeviceWarnData() {
//查询表中数据
LambdaQueryWrapper<YysDeviceWarnStatisticsEntity> wrapper = new LambdaQueryWrapper<>(YysDeviceWarnStatisticsEntity.class);
wrapper.isNull(YysDeviceWarnStatisticsEntity::getDeleteMark);
List<YysDeviceWarnStatisticsEntity> list1 = yysDeviceWarnStatisticsService.list(wrapper);
List<EqmtCollectExceptMasterEntity> list = yysDeviceWarnStatisticsService.syncData(list1.stream().map(YysDeviceWarnStatisticsEntity::getSyncId).collect(Collectors.toList()));
if (CollectionUtils.isEmpty(list)) {
return;
}
List<YysDeviceWarnStatisticsEntity> collect = list.stream().map(obj -> {
String mainId = RandomUtil.uuId();
YysDeviceWarnStatisticsEntity entity = new YysDeviceWarnStatisticsEntity();
entity.setId(mainId);
entity.setDeviceName(obj.getLine());
entity.setProductionTime(obj.getGmtCreate());
entity.setCreatorTime(obj.getCreateTime());
entity.setRegisterAddress(obj.getRegistorAddress());
entity.setWarnDetails(obj.getExceptMessage());
entity.setWarnType(obj.getExceptTypeName());
entity.setSyncId(obj.getId());
entity.setCreatorUserId(userProvider.get().getUserId());
return entity;
}).collect(Collectors.toList());
//批量存储
boolean result = yysDeviceWarnStatisticsService.saveBatch(collect);
//存储成功之后 统计数量
if (result) {
CompletableFuture.runAsync(() -> yysDeviceWarnService.syncCount(collect));
}
}
}
Loading…
Cancel
Save