feat():数据采集同步

master
jiyufei 2 months ago
parent b3cd205a2c
commit 2a4657db51

@ -14,18 +14,20 @@ spring:
cache: false #spring内置thymeleaf缓存
# ===================== 数据源配置 =====================
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure #排除自动配置手动配置druid
datasource:
db-type: MySQL #数据库类型(可选值 MySQL、SQLServer、Oracle、DM8、KingbaseES、PostgreSQL请严格按可选值填写)
host: 222.71.165.188
port: 3309
username: root
password: linus,.123
db-name: jnpf_yys_dev
db-schema: #金仓达梦选填
prepare-url: #自定义url
# exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure #排除自动配置手动配置druid
# datasource:
# db-type: MySQL #数据库类型(可选值 MySQL、SQLServer、Oracle、DM8、KingbaseES、PostgreSQL请严格按可选值填写)
# host: 222.71.165.188
# port: 3309
# username: root
# password: linus,.123
# db-name: jnpf_yys_dev
# db-schema: #金仓达梦选填
# prepare-url: #自定义url
# ===================== 动态多数据源 =====================
datasource:
db-type: MySQL
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: true #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
@ -59,12 +61,17 @@ spring:
statementPrepareAfterLogEnabled: false
statementPrepareCallAfterLogEnabled: false
statementParameterSetLogEnabled: false
# datasource:
# master:
# url: jdbc:mysql://${spring.datasource.host}:${spring.datasource.port}/${spring.datasource.dbname}?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
# username: ${spring.datasource.username}
# password: ${spring.datasource.password}
# driver-class-name: com.mysql.cj.jdbc.Driver
datasource:
master:
url: jdbc:mysql://222.71.165.188:3309/jnpf_yys_dev?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: linus,.123
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单机模式

@ -32,4 +32,6 @@ public interface YysDeviceDataService extends IService<YysDeviceDataEntity> {
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 syncCount(List<YysDeviceWarnStatisticsEntity> collect);
}

@ -2,7 +2,9 @@ package jnpf.service;
import jnpf.model.yysdevicewarnstatistics.*;
import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -32,4 +34,6 @@ public interface YysDeviceWarnStatisticsService extends IService<YysDeviceWarnSt
void saveOrUpdate(YysDeviceWarnStatisticsForm yysDeviceWarnStatisticsForm, String id, boolean isSave) throws Exception;
List<EqmtCollectExceptMasterEntity> syncData(List<Long> syncIds);
}

@ -1,23 +1,37 @@
package jnpf.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.google.common.collect.Lists;
import jnpf.entity.*;
import jnpf.mapper.YysDeviceDataMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.yysdevicedata.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
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 com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
@ -25,13 +39,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
* yysDeviceData
* V3.5
* https://www.jnpfsoft.com
@ -46,11 +64,18 @@ public class YysDeviceDataServiceImpl extends ServiceImpl<YysDeviceDataMapper, Y
@Autowired
private UserProvider userProvider;
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<YysDeviceDataEntity> getList(YysDeviceDataPagination yysDeviceDataPagination) {
return getTypeList(yysDeviceDataPagination, yysDeviceDataPagination.getDataType());
}
/** 列表查询 */
/**
*
*/
@Override
public List<YysDeviceDataEntity> getTypeList(YysDeviceDataPagination yysDeviceDataPagination, String dataType) {
String userId = userProvider.get().getUserId();
@ -222,27 +247,34 @@ public class YysDeviceDataServiceImpl extends ServiceImpl<YysDeviceDataMapper, Y
return this.list(yysDeviceDataQueryWrapper);
}
}
@Override
public YysDeviceDataEntity getInfo(String id) {
QueryWrapper<YysDeviceDataEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(YysDeviceDataEntity::getId, id);
return this.getOne(queryWrapper);
}
@Override
public void create(YysDeviceDataEntity entity) {
this.save(entity);
}
@Override
public boolean update(String id, YysDeviceDataEntity entity) {
return this.updateById(entity);
}
@Override
public void delete(YysDeviceDataEntity entity) {
if (entity != null) {
this.removeById(entity.getId());
}
}
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override
public String checkForm(YysDeviceDataForm form, int i) {
boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
@ -254,8 +286,10 @@ public class YysDeviceDataServiceImpl extends ServiceImpl<YysDeviceDataMapper, Y
//主表字段验证
return countRecover;
}
/**
* ()
*
* @param id
* @param yysDeviceDataForm
* @return
@ -279,4 +313,22 @@ public class YysDeviceDataServiceImpl extends ServiceImpl<YysDeviceDataMapper, Y
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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import jnpf.entity.*;
import jnpf.mapper.YysDeviceWarnMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.yysdevicewarn.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
@ -25,13 +36,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
* yysDeviceWarn
* V3.5
* https://www.jnpfsoft.com
@ -50,7 +65,10 @@ public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, Y
public List<YysDeviceWarnEntity> getList(YysDeviceWarnPagination yysDeviceWarnPagination) {
return getTypeList(yysDeviceWarnPagination, yysDeviceWarnPagination.getDataType());
}
/** 列表查询 */
/**
*
*/
@Override
public List<YysDeviceWarnEntity> getTypeList(YysDeviceWarnPagination yysDeviceWarnPagination, String dataType) {
String userId = userProvider.get().getUserId();
@ -221,27 +239,34 @@ public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, Y
return this.list(yysDeviceWarnQueryWrapper);
}
}
@Override
public YysDeviceWarnEntity getInfo(String id) {
QueryWrapper<YysDeviceWarnEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(YysDeviceWarnEntity::getId, id);
return this.getOne(queryWrapper);
}
@Override
public void create(YysDeviceWarnEntity entity) {
this.save(entity);
}
@Override
public boolean update(String id, YysDeviceWarnEntity entity) {
return this.updateById(entity);
}
@Override
public void delete(YysDeviceWarnEntity entity) {
if (entity != null) {
this.removeById(entity.getId());
}
}
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override
public String checkForm(YysDeviceWarnForm form, int i) {
boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
@ -253,8 +278,10 @@ public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, Y
//主表字段验证
return countRecover;
}
/**
* ()
*
* @param id
* @param yysDeviceWarnForm
* @return
@ -276,4 +303,57 @@ public class YysDeviceWarnServiceImpl extends ServiceImpl<YysDeviceWarnMapper, Y
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;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.google.common.collect.Lists;
import jnpf.entity.*;
import jnpf.mapper.YysDeviceWarnStatisticsMapper;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.yysdevicewarnstatistics.*;
import java.math.BigDecimal;
import cn.hutool.core.util.ObjectUtil;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.util.GeneraterSwapUtil;
import jnpf.database.model.superQuery.SuperQueryJsonModel;
import jnpf.database.model.superQuery.ConditionJsonModel;
import jnpf.database.model.superQuery.SuperQueryConditionModel;
import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.regex.Pattern;
import jnpf.model.QueryModel;
import java.util.stream.Collectors;
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 com.baomidou.mybatisplus.core.metadata.IPage;
import jnpf.database.model.superQuery.SuperJsonModel;
@ -25,13 +39,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.text.SimpleDateFormat;
import jnpf.util.*;
import java.util.*;
import jnpf.base.UserInfo;
import jnpf.permission.entity.UserEntity;
/**
*
* yysDeviceWarnStatistics
* V3.5
* https://www.jnpfsoft.com
@ -43,6 +61,9 @@ public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWar
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private UserProvider userProvider;
@ -50,7 +71,10 @@ public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWar
public List<YysDeviceWarnStatisticsEntity> getList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination) {
return getTypeList(yysDeviceWarnStatisticsPagination, yysDeviceWarnStatisticsPagination.getDataType());
}
/** 列表查询 */
/**
*
*/
@Override
public List<YysDeviceWarnStatisticsEntity> getTypeList(YysDeviceWarnStatisticsPagination yysDeviceWarnStatisticsPagination, String dataType) {
String userId = userProvider.get().getUserId();
@ -222,27 +246,34 @@ public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWar
return this.list(yysDeviceWarnStatisticsQueryWrapper);
}
}
@Override
public YysDeviceWarnStatisticsEntity getInfo(String id) {
QueryWrapper<YysDeviceWarnStatisticsEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(YysDeviceWarnStatisticsEntity::getId, id);
return this.getOne(queryWrapper);
}
@Override
public void create(YysDeviceWarnStatisticsEntity entity) {
this.save(entity);
}
@Override
public boolean update(String id, YysDeviceWarnStatisticsEntity entity) {
return this.updateById(entity);
}
@Override
public void delete(YysDeviceWarnStatisticsEntity entity) {
if (entity != null) {
this.removeById(entity.getId());
}
}
/** 验证表单唯一字段,正则,非空 i-0新增-1修改*/
/**
* i-0-1
*/
@Override
public String checkForm(YysDeviceWarnStatisticsForm form, int i) {
boolean isUp = StringUtil.isNotEmpty(form.getId()) && !form.getId().equals("0");
@ -254,8 +285,10 @@ public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWar
//主表字段验证
return countRecover;
}
/**
* ()
*
* @param id
* @param yysDeviceWarnStatisticsForm
* @return
@ -277,4 +310,22 @@ public class YysDeviceWarnStatisticsServiceImpl extends ServiceImpl<YysDeviceWar
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;
@TableField(value = "OEE" , updateStrategy = FieldStrategy.IGNORED)
private BigDecimal oee;
@TableField(value = "SYNCID" , updateStrategy = FieldStrategy.IGNORED)
private Long syncId;
@TableField("F_CREATOR_TIME")
private Date creatorTime;
@TableField("F_CREATOR_USER_ID")

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

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