Commit e89ef5c4 authored by 夏东伟's avatar 夏东伟

网关采集

parent 2768bff2
package net.vtstar.zhongtong.avi.equipment.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @Author: xiadongwei
* @Date: 2019/11/20 17:30
*/
@ApiModel("设备状态记录表")
@Data
@Table(name = "equip_status_record")
public class EquipStatusRecord {
@Id
private Long id;
@Column(name = "equip_type")
private String equipType;
@ApiModelProperty(notes = "设备编号")
@Column(name = "equip_code")
private String equipCode;
@ApiModelProperty(notes = "状态")
@Column(name = "equip_status")
private String equipStatus;
@ApiModelProperty(notes = "开始时间")
@Column(name = "begin_time")
private Date beginTime;
@ApiModelProperty(notes = "结束时间")
@Column(name = "end_time")
private Date endTime;
}
......@@ -18,7 +18,7 @@ import java.util.Date;
@ApiModel("设备故障记录表")
@Data
@Search(code = "MACHINE_WARNING_RECORD")
@Table(name = "machine_warning_record")
@Table(name = "equip_warning_record")
public class FaultRecord {
@Id
......@@ -29,18 +29,12 @@ public class FaultRecord {
@Search
private String workshopCode;
@ApiModelProperty(notes = "设备ID")
@Column(name = "machine_id")
private Long machineId;
@ApiModelProperty(notes = "设备编号")
@JoinColumn(tableName = EquipInfo.class, name = "equipCode")
@Column(name = "machine_code")
@Search
private String equipCode;
@ApiModelProperty(notes = "设备名称")
@JoinColumn(tableName = EquipInfo.class, name = "alias")
@Search
private String alias;
@ApiModelProperty(notes = "故障信息")
......@@ -51,4 +45,11 @@ public class FaultRecord {
@Column(name = "begin_time")
private Date beginTime;
@ApiModelProperty(notes = "结束时间")
@Column(name = "end_time")
private Date endTime;
@Column(name = "create_time")
private Date createTime;
}
......@@ -67,8 +67,8 @@ public class StatisticsTimeJob extends QuartzJobBean {
if (null != lastRecord && lastRecord.getCreateTime().before(DateUtils.getEndOfDay(0)) && lastRecord.getCreateTime().after(DateUtils.getStartOfDay(0))){
//如果上一条记录是今天创建的, 则更新当班累计运行时间
lastRecord.setCreateTime(new Date());
lastRecord.setCurrentRuntime(hours);
lastRecord.setTotalRuntime(lastRecord.getTotalRuntime().subtract(lastRecord.getCurrentRuntime()).add(hours));
lastRecord.setCurrentRuntime(hours);
runtimeRecordMapper.update(lastRecord);
}else{
RuntimeRecord runtimeRecord = new RuntimeRecord();
......
package net.vtstar.zhongtong.avi.equipment.mapper;
import net.vtstar.user.mybatis.BaseMapper;
import net.vtstar.zhongtong.avi.equipment.domain.EquipStatusRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: xiadongwei
* @Date: 2019/11/20 9:31
*/
@Mapper
public interface EquipStatusRecordMapper extends BaseMapper<EquipStatusRecord> {
}
......@@ -4,10 +4,12 @@ import com.alibaba.excel.util.StringUtils;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.equipmgt.service.EquipDataService;
import net.vtstar.scada.base.gather.domain.EquipmentData;
import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.OrderBy;
import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.equipment.domain.EquipStatusRecord;
import net.vtstar.zhongtong.avi.equipment.mapper.EquipStatusRecordMapper;
import net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper;
import net.vtstar.zhongtong.avi.gateway.painting.domain.DryingRoomTempMachine;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -30,20 +32,35 @@ public class DryingRoomTempService {
@Autowired
private EquipmentDataMapper dataMapper;
@Autowired
private EquipStatusRecordMapper statusRecordMapper;
/**
* 查询温度状态列表
*/
public List<EquipmentData> findPageEquip(Integer pageNum, Integer pageSize, String equipCode, Date beginTime) {
public List<EquipStatusRecord> findPageEquip(Integer pageNum, Integer pageSize, String equipCode, Date beginTime) {
PageHelper.startPage(pageNum, pageSize);
if (null == beginTime){
beginTime = new Date();
}
if (StringUtils.isEmpty(equipCode)){
return equipDataService.findRunByType("DRYING_ROOM_TEMP");
}
String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(0, beginTime), "yyyy-MM-dd HH:mm:ss");
String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(0, beginTime), "yyyy-MM-dd HH:mm:ss");
return equipDataService.findRunByCodeAndDate2(equipCode, startOfDay, endOfDay);
if (StringUtils.isEmpty(equipCode)){
return statusRecordMapper.findList(new WhereFilter(){{
addFilter("equip_type", Operation.EQUAL, "DRYING_ROOM_TEMP");
addFilter("begin_time", Operation.GREATER_THAN, startOfDay);
addFilter("end_time", Operation.LESS_THAN, endOfDay);
addFilter("equip_status", Operation.EQUAL, "RUN");
addOrderBy(EquipStatusRecord.class, "begin_time", OrderBy.DESC);
}}, EquipStatusRecord.class);
}
return statusRecordMapper.findList(new WhereFilter(){{
addFilter("equip_code", Operation.EQUAL, equipCode);
addFilter("begin_time", Operation.GREATER_THAN, startOfDay);
addFilter("end_time", Operation.LESS_THAN, endOfDay);
addFilter("equip_status", Operation.EQUAL, "RUN");
addOrderBy(EquipStatusRecord.class, "begin_time", OrderBy.DESC);
}}, EquipStatusRecord.class);
}
......
......@@ -8,24 +8,25 @@ import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.OrderBy;
import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.user.search.service.SearchService;
import net.vtstar.zhongtong.avi.equipment.domain.*;
import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo;
import net.vtstar.zhongtong.avi.equipment.domain.FaultRecord;
import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord;
import net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper;
import net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper;
import net.vtstar.zhongtong.avi.equipment.mapper.FaultRecordMapper;
import net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper;
import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning;
import net.vtstar.zhongtong.avi.stamping.domain.LaserCutting3DMachine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.Cache;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author: xiadongwei
......@@ -50,11 +51,6 @@ public class RunRecordService {
@Autowired
private EquipmentDataMapper equipmentData;
@Resource(name = "warningCache")
private Cache warningCache;
@Resource(name = "redisTemplate")
private RedisTemplate redisTemplate;
/**
* 分页查询运行时间
*/
......@@ -70,10 +66,6 @@ public class RunRecordService {
*/
public List<FaultRecord> findPageFault(JSONObject pageFilter) {
PageHelper.startPage(pageFilter.getIntValue("pageNum"), pageFilter.getIntValue("pageSize"));
Set<String> keys = redisTemplate.keys(Constant.LED_PREFIX + "*");
for (String key : keys) {
List warningList = warningCache.get(key, ArrayList.class);
}
return faultRecordMapper.findList(searchService.pageFilter2Filter(pageFilter, new WhereFilter() {{
/*addJoin(PaintshopStation.class, "area_id", PaintshopArea.class, "id");
addJoin(PaintshopStation.class, "lane_id", PaintshopLane.class, "id");*/
......@@ -108,4 +100,57 @@ public class RunRecordService {
equipmentData.insert(runtimeRecord);
}
/**
* 刷新Redis中的warning信息到数据库中
*
* @param list
*/
public void refreshWarning(List<Warning> list) {
List<FaultRecord> faultRecords = faultRecordMapper.findList(new WhereFilter() {{
addFilter("end_time", Operation.IS, "null");
}}, FaultRecord.class);
List<FaultRecord> records = new ArrayList<>();
//告警记录为空, 则保存当前报警
if (CollectionUtils.isEmpty(faultRecords)) {
for (Warning w : list) {
FaultRecord faultRecord = new FaultRecord();
faultRecord.setEquipCode(w.getName().split(" ")[0]);
faultRecord.setWarningInfo(w.getInfo());
faultRecord.setWorkshopCode("涂装车间");
faultRecord.setBeginTime(new Date());
records.add(faultRecord);
}
if (!CollectionUtils.isEmpty(records)) {
faultRecordMapper.insertList(records);
}
return;
}
Map<String, Warning> warningMap = list.stream().collect(Collectors.toMap(Warning :: getInfo, w -> w, (key1, key2) -> key1));
Map<String, FaultRecord> faultRecordMap = faultRecords.stream().collect(Collectors.toMap(FaultRecord::getWarningInfo, f ->f, (key1, key2) -> key1));
//遍历现有异常, 看是否存在新的报警
for (String warningKey : warningMap.keySet()){
Warning warning = warningMap.get(warningKey);
if (null == faultRecordMap.get(warningKey)){
FaultRecord faultRecord = new FaultRecord();
faultRecord.setEquipCode(warning.getName().split(" ")[0]);
faultRecord.setWarningInfo(warning.getInfo());
faultRecord.setWorkshopCode("涂装车间");
faultRecord.setBeginTime(new Date());
faultRecord.setCreateTime(new Date());
records.add(faultRecord);
}
}
if (!CollectionUtils.isEmpty(records)){
faultRecordMapper.insertList(records);
}
//遍历异常记录, 若现有异常里面不包含, 则说明此异常已经结束
for (String faultString : faultRecordMap.keySet()){
FaultRecord faultRecord = faultRecordMap.get(faultString);
if (null == warningMap.get(faultString)){
faultRecord.setEndTime(new Date());
faultRecordMapper.update(faultRecord);
}
}
}
}
......@@ -25,7 +25,7 @@ public class PlateChainStateMachine extends EquipmentData {
private String equipCode;
@Column(name = "state")
@ApiModelProperty(notes = "设备状态(0是关机,1是运行)")
@ApiModelProperty(notes = "设备状态")
private Integer state;
@ApiModelProperty("时间")
......
......@@ -36,8 +36,11 @@ public class PlateChainStateMachineJob extends GatherJob {
@Override
public boolean handleObject(EquipmentData equipmentData) {
PlateChainStateMachine data = (PlateChainStateMachine) equipmentData;
Integer state = data.getState();
if (state == null) {
String state = data.getStatus();
if (state == null || "0".equals(state)) {
return false;
}
if (null == data.getState()){
return false;
}
/**
......@@ -50,11 +53,12 @@ public class PlateChainStateMachineJob extends GatherJob {
testValueOperations.set(key, state);
return true;
}
if (state.equals(value)){
return false;
if (data.getState().equals(value)){
equipmentData.setEquipStatus(EquipStatusEnum.ALARM);
return true;
}
equipmentData.setEquipStatus(EquipStatusEnum.RUN);
testValueOperations.set(key, state);
testValueOperations.set(key, data.getState());
return true;
}
......
......@@ -65,11 +65,12 @@ public class PlateChainTimeMachineJob extends QuartzJobBean {
}
//如果记录的开始时间大于上一条记录的结束时间
Date beginTime = equipmentData.getBeginTime();
if (null == beginTime){
if (null == beginTime || null == equipmentData.getEndTime()){
continue;
}
if (beginTime.after(startTime)){
totalTime = totalTime + beginTime.getTime() - startTime.getTime();
startTime = equipmentData.getEndTime();
}
}
if (totalTime != 0){
......
......@@ -24,47 +24,47 @@ public class PretreatmentMachine extends EquipmentData {
@ApiModelProperty(notes = "设备编号")
private String equipCode;
@Show(label = "热纯水洗燃烧机温度")
@Column(name = "rcs_temperature")
@ApiModelProperty(notes = "热纯水燃烧机温度")
private String rcsTemperature;
@Show(label = "防锈工位燃烧机温度")
@Column(name = "fxgw_temperature")
@ApiModelProperty(notes = "防锈工位燃烧机温度")
private String fxgwTemperature;
@Show(label = "磷化热水泵温度")
@Column(name = "lh_temperature")
@ApiModelProperty(notes = "磷化热说泵温度")
private String lhTemperature;
@Show(label = "电动三通阀温度")
@Column(name = "ddst_temperature")
@ApiModelProperty(notes = "电动三通阀温度")
private String ddstTemperature;
@Show(label = "脱脂电动三通阀温度")
@Show(label = "预脱脂温度")
@Column(name = "ytz_temperature")
@ApiModelProperty(notes = "预脱脂电动三通阀温度")
private String ytzTemperature;
@Show(label = "脱脂温度")
@Column(name = "tz_temperature")
@ApiModelProperty(notes = "脱脂电动三通阀温度")
private String tzTemperature;
@Show(label = "预脱脂电动三通阀温度")
@Column(name = "ytz_temperature")
@ApiModelProperty(notes = "预脱脂电动三通阀温度")
private String ytzTemperature;
@Show(label = "磷化温度")
@Column(name = "lh_temperature")
@ApiModelProperty(notes = "磷化热说泵温度")
private String lhTemperature;
@Show(label = "热纯水温度")
@Column(name = "rcs_temperature")
@ApiModelProperty(notes = "热纯水燃烧机温度")
private String rcsTemperature;
@Show(label = "防锈工位温度")
@Column(name = "fxgw_temperature")
@ApiModelProperty(notes = "防锈工位燃烧机温度")
private String fxgwTemperature;
@Show(label = "2#弱酸洗时间(s)")
@Show(label = "2#弱酸洗时间(s)")
@Column(name = "rsc2_time")
@ApiModelProperty(notes = "2#若酸洗槽时间")
private Integer rsc2Time;
@Show(label = "3#中和时间(s)")
@Show(label = "3#中和时间(s)")
@Column(name = "zhc3_time")
@ApiModelProperty(notes = "3#中和槽时间")
private Integer zhc3Time;
@Show(label = "4#水洗4时间(s)")
@Show(label = "4#水洗4时间(s)")
@Column(name = "sx4_time")
@ApiModelProperty(notes = "4#水洗4槽时间")
private Integer sx4Time;
......
......@@ -34,6 +34,9 @@ public class HydrogenStationVocMachineJob extends GatherJob {
if (state == null || "0".equals(state)) {
return false;
}
if(null == data.getDischargePortPressure() && null == data.getHydrogenSourcePressure()){
return false;
}
equipmentData.setEquipStatus(EquipStatusEnum.RUN);
return true;
}
......
......@@ -34,7 +34,7 @@ public class AutomaticSpotWeldingMachineJob extends GatherJob {
if (state == null || "0".equals(state)) {
return false;
}
if (data.getWeldingSpotA1() == null || data.getWeldingSpotA2() == null){
if (data.getWeldingSpotA1() == null || data.getWeldingSpotA2() == null || null == data.getPressure()){
return false;
}
equipmentData.setEquipStatus(EquipStatusEnum.RUN);
......@@ -47,7 +47,11 @@ public class AutomaticSpotWeldingMachineJob extends GatherJob {
return null;
}
if (fieldName.startsWith("weldingSpotA")){
return Float.valueOf(Integer.valueOf(value.toString()) / 65535f * 10 * 4000).intValue();
int intValue = Float.valueOf(Integer.valueOf(value.toString()) / 65535f * 5 * 4000).intValue();
if (intValue < 1000){
return null;
}
return intValue;
}
if ("pressure".equals(fieldName)){
return Integer.valueOf(value.toString()) / 1000f;
......
......@@ -66,11 +66,12 @@ public class WeldingPlateChainTimeMachineJob extends QuartzJobBean {
}
//如果记录的开始时间大于上一条记录的结束时间
Date beginTime = equipmentData.getBeginTime();
if (null == beginTime){
if (null == beginTime || null == equipmentData.getEndTime()){
continue;
}
if (beginTime.after(startTime)){
totalTime = totalTime + beginTime.getTime() - startTime.getTime();
startTime = equipmentData.getEndTime();
}
}
if (totalTime != 0){
......
......@@ -3,13 +3,14 @@ package net.vtstar.zhongtong.avi.ledlamp.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.user.mybatis.provider.OrderBy;
import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.utils.CollecUtils;
import net.vtstar.utils.domain.Return;
import net.vtstar.zhongtong.avi.ledlamp.domain.RoomInfo;
import net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper;
import net.vtstar.zhongtong.avi.gateway.painting.domain.VocMachine;
import net.vtstar.zhongtong.avi.ledlamp.domain.vo.LedStationVO;
import net.vtstar.zhongtong.avi.ledlamp.service.LedService;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning;
import net.vtstar.zhongtong.avi.monitoring.domain.WorkRoom;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
import net.vtstar.zhongtong.avi.monitoring.domain.vo.VocVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -18,7 +19,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Slf4j
@Api(description = "led大屏监控模块")
......@@ -29,12 +31,15 @@ public class LedController {
@Autowired
private LedService ledService;
@Autowired
private EquipmentDataMapper dataMapper;
@ApiOperation(value = "工位级led大屏信息监控", response = LedStationVO.class)
@GetMapping(value = "/ledInfo")
private Return getLEDStationInfo(@RequestParam(value = "ledNo") String ledNo) {
LedStationVO ledStationVO = new LedStationVO();
ledStationVO.setName("电泳");
/*ledStationVO.setName("电泳");
ArrayList<Warning> warnings = new ArrayList<>();
Warning warning = new Warning();
warning.setInfo("报警信息1111111111111111111111111111111111111");
......@@ -62,7 +67,7 @@ public class LedController {
roomInfos.add(roomInfo);
roomInfos.add(roomInfo2);
ledStationVO.setRoomInfoList(roomInfos);
ledStationVO.setRoomInfoList(roomInfos);*/
ledStationVO = ledService.getInfoByNo(ledNo);
return Return.success(ledStationVO);
......@@ -71,11 +76,25 @@ public class LedController {
@ApiOperation(value = "led VOC浓度接口", response = VocVO.class)
@GetMapping(value = "/info/VOC")
private Return getVOCInfo() {
//TODO: voc进出口浓度 真实数据
List<Map<String, Object>> datas = dataMapper.findJoin(new WhereFilter() {{
addOrderBy("create_time", OrderBy.DESC);
setRows(0);
setOffset(1);
}}, VocMachine.class);
VocVO vocVO = new VocVO();
vocVO.setExitCONC(new BigDecimal(0.47));
vocVO.setNorthCONC(new BigDecimal(0.25));
vocVO.setSouthCONC(new BigDecimal(0.15));
if(CollecUtils.isEmpty(datas)){
vocVO.setExitCONC(new BigDecimal(100));
vocVO.setNorthCONC(new BigDecimal(85));
vocVO.setSouthCONC(new BigDecimal(5));
}else {
Map<String, Object> map = datas.get(0);
vocVO.setSouthCONC(new BigDecimal(map.get("concentration2").toString()));
vocVO.setNorthCONC(new BigDecimal(map.get("concentration1").toString()));
vocVO.setExitCONC(new BigDecimal(5));
}
//TODO: voc进出口浓度 真实数据
return Return.success(vocVO);
}
}
......@@ -13,7 +13,7 @@ public class VocVO {
@ApiModelProperty(notes = "南进口VOC浓度")
private BigDecimal southCONC;
@ApiModelProperty(notes = "进口VOC浓度")
@ApiModelProperty(notes = "进口VOC浓度")
private BigDecimal northCONC;
@ApiModelProperty(notes = "出口VOC浓度")
......
......@@ -74,7 +74,7 @@ public class AVIMonitorJob extends GatherJob {
List<PaintshopStation> stations = new ArrayList<>();
for (EquipInfo equipInfo : equipInfoList) {
List<EquipCommunication> commList = equipInfoService.getCommunicationList(equipInfo.getEquipCode(), 1);
List<EquipCommunication> commList = equipInfoService.getCommunicationListByEquipType(equipInfo.getEquipCode(), 1);
if (CollectionUtils.isEmpty(commList)) {
return;
}
......
......@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.gather.job.GatherJob;
import net.vtstar.zhongtong.avi.equipment.domain.PaintshopArea;
import net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation;
import net.vtstar.zhongtong.avi.equipment.service.RunRecordService;
import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Skid;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning;
......@@ -13,6 +14,7 @@ import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
import net.vtstar.zhongtong.avi.monitoring.domain.vo.CarStatisticsVO;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
......@@ -39,6 +41,8 @@ public class RedisToCacheJob extends GatherJob {
private Cache webStationCache;
@Resource(name = "warningCache")
private Cache warningCache;
@Autowired
private RunRecordService runRecordService;
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
......@@ -51,12 +55,13 @@ public class RedisToCacheJob extends GatherJob {
Set<String> warningKeys = redisTemplate.keys(Constant.WARNING_PREFIX + "*");
Map<String, List<String>> warningKeyMap = warningKeys.stream().collect(Collectors.groupingBy(a -> a.split(":")[1]));
List<Warning> list = new ArrayList<>();
for (Map.Entry<String, List<String>> warningKey : warningKeyMap.entrySet()) {
String key = warningKey.getKey();
List<Warning> warnings = new ArrayList<>();
List<String> value = warningKey.getValue();
for (String s : value) {
Integer state = (Integer) valueOperations.get(warningKey);
Integer state = (Integer) valueOperations.get(s);
if (state == 1) {
String[] split = s.split(":");
String warningCode = split[2];
......@@ -65,8 +70,10 @@ public class RedisToCacheJob extends GatherJob {
}
}
warningCache.put(Constant.LED_PREFIX + key, warnings);
list.addAll(warnings);
warningCache.put(Constant.LED_PREFIX + "ALL", warnings);
}
runRecordService.refreshWarning(list);
//处理进出车信息
Set<String> keys = redisTemplate.keys(Constant.STATION_PREFIX + "*");
List<PaintshopStation> stations = new ArrayList<>();
......@@ -95,7 +102,7 @@ public class RedisToCacheJob extends GatherJob {
for (Map.Entry<String, PaintshopStation> entry : collect.entrySet()) {
PaintshopStation value = entry.getValue();
Skid skid = value.getSkid();
if (null != skid){
if (null != skid) {
value.setState(StationState.USE);
value.setBusNo(skid.getBusNo());
value.setBusType(skid.getBusType());
......
......@@ -96,18 +96,18 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
addOrderBy(PaintshopStation.class, "id", OrderBy.ASC);
}}, PaintshopStation.class);
// for (int i = 0; i < stations.size(); i++) {
// PaintshopStation station = stations.get(i);
// if (i % 5 == 0) {
// station.setBusType(ProductionType.OWN);
// station.setBusNo("");
// station.setState(StationState.USE);
// } else {
// station.setState(StationState.FREE);
// }
// valueOperations.set(Constant.STATION_PREFIX + station.getCode(),station);
// }
//todo: 初始化工位信息
for (int i = 0; i < stations.size(); i++) {
PaintshopStation station = stations.get(i);
if (i % 5 == 0) {
station.setBusType(ProductionType.OWN);
station.setBusNo("");
station.setState(StationState.USE);
} else {
station.setState(StationState.FREE);
}
valueOperations.set(Constant.STATION_PREFIX + station.getCode(),station);
}
......
......@@ -225,7 +225,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
}
}
//记录过站信息
//TODO: 记录过站信息
String areaCode = value.getAreaId().toString();
String areaKey = Constant.BUS_SIZE_IN + areaCode + ":" + today;
Integer size = (Integer) valueOperations.get(areaKey);
......
......@@ -5,19 +5,28 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.utils.DateUtils;
import net.vtstar.utils.domain.Return;
import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo;
import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord;
import net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper;
import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning;
import net.vtstar.zhongtong.avi.report.domain.vo.EquStatePercent;
import net.vtstar.zhongtong.avi.report.domain.vo.TrendVO;
import net.vtstar.zhongtong.avi.utils.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.Cache;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
......@@ -32,6 +41,12 @@ import java.util.Random;
@RequestMapping("/area")
public class ReportController {
@Resource(name = "warningCache")
private Cache warningCache;
@Autowired
private RuntimeRecordMapper runtimeRecordMapper;
private Integer errNum = 2;
private Integer runNum = 5;
......@@ -173,7 +188,7 @@ public class ReportController {
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
String time = format.format(date);
List<Warning> warnings = new ArrayList<>();
Warning warning = new Warning();
/*Warning warning = new Warning();
warning.setTime(time);
warning.setInfo("设备停止运动");
warning.setEquipName("旋转棍床");
......@@ -183,7 +198,9 @@ public class ReportController {
warning1.setTime(time);
warning1.setInfo("设备发生异常");
warnings.add(warning);
warnings.add(warning1);
warnings.add(warning1);*/
warnings = warningCache.get(Constant.LED_PREFIX + "ALL", ArrayList.class);
return Return.success(warnings);
}
......@@ -191,13 +208,21 @@ public class ReportController {
@GetMapping("/runTimeList")
private Return getMachineRunTime(@RequestParam String workshopCode){
//TODO:
ArrayList<Object> list = new ArrayList<>();
for (int i = 0; i < 10; i++){
List<RuntimeRecord> list = new ArrayList<>();
/*for (int i = 0; i < 10; i++){
RuntimeRecord runtimeRecord = new RuntimeRecord();
runtimeRecord.setEquipCode("喷涂室00" + i);
runtimeRecord.setCurrentRuntime(new BigDecimal(5));
list.add(runtimeRecord);
}
}*/
String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(0), "yyyy-MM-dd HH:mm:ss");
String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(0), "yyyy-MM-dd HH:mm:ss");
list = runtimeRecordMapper.findList(new WhereFilter() {{
addFilter(RuntimeRecord.class,"create_time", Operation.GREATER_THAN, startOfDay);
addFilter(RuntimeRecord.class,"create_time", Operation.LESS_THAN, endOfDay);
addFilter(RuntimeRecord.class,"workshop_code", Operation.EQUAL, workshopCode);
addJoin(RuntimeRecord.class, "machine_id", EquipInfo.class, "id");
}}, RuntimeRecord.class);
return Return.success(list);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="net.vtstar.zhongtong.avi.equipment.mapper.EquipStatusRecordMapper">
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment