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

网关采集

parent 6356f29e
...@@ -137,11 +137,21 @@ ...@@ -137,11 +137,21 @@
<directory>src/main/resources</directory> <directory>src/main/resources</directory>
<filtering>true</filtering> <filtering>true</filtering>
</resource> </resource>
<resource>
<directory>src/main/resources/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources> </resources>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin> </plugin>
<plugin> <plugin>
......
package net.vtstar.zhongtong.avi.equipment.controller;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.utils.domain.Return;
import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo;
import net.vtstar.zhongtong.avi.equipment.service.DryingRoomTempService;
import net.vtstar.zhongtong.avi.gateway.painting.domain.DryingRoomTempMachine;
import org.springframework.beans.factory.annotation.Autowired;
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 java.util.Date;
/**
* @Author: xiadongwei
* @Date: 2019/11/15 9:54
*/
@Slf4j
@Api(description = "烘干室温度模块")
@RequestMapping("/api/dryingRoom")
@RestController
public class DryingRoomTempController {
@Autowired
private DryingRoomTempService service;
@ApiOperation(value = "查询温度状态列表", response = EquipInfo.class, responseContainer = "List", notes =
"入参:\n{\n" +
" \"equipCode\": \"设备编号,字符串类型, 可以为空\",\n" +
" \"beginTime\": \"指定日期,Data类型, (yyyy-MM-dd), 可以为空, 默认当天\",\n" +
"}")
@GetMapping("/equipPage")
public Return getDryingRoomState(@RequestParam(value = "equipCode", required = false) String equipCode,
@RequestParam(value = "beginTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date beginTime){
return Return.success(new PageInfo<>(service.findPageEquip(equipCode, beginTime)));
}
@ApiOperation(value = "获取指定时间内的温度表", response = DryingRoomTempMachine.class, responseContainer = "List", notes =
"入参:\n{\n" +
" \"beginTime\": \"开始时间,String类型, (yyyy-MM-dd HH:mm:ss)\",\n" +
" \"endTime\": \"结束时间,String类型, (yyyy-MM-dd HH:mm:ss)\"\n" +
"}")
@GetMapping("/temp")
public Return getTempByStateId(@RequestParam(value = "beginTime")String beginTime,
@RequestParam(value = "endTime") String endTime){
return Return.success(service.getTempByStateId(beginTime, endTime));
}
}
...@@ -5,6 +5,7 @@ import net.vtstar.scada.base.equipmgt.service.EquipDataService; ...@@ -5,6 +5,7 @@ import net.vtstar.scada.base.equipmgt.service.EquipDataService;
import net.vtstar.scada.base.gather.domain.EquipmentData; import net.vtstar.scada.base.gather.domain.EquipmentData;
import net.vtstar.user.mybatis.provider.Operation; import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.WhereFilter; import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo; import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo;
import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord; import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord;
import net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper; import net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper;
...@@ -44,6 +45,9 @@ public class StatisticsTimeJob extends QuartzJobBean { ...@@ -44,6 +45,9 @@ public class StatisticsTimeJob extends QuartzJobBean {
instance.add(Calendar.DATE, -1); instance.add(Calendar.DATE, -1);
Date yesterday = instance.getTime(); Date yesterday = instance.getTime();
String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(-1), "yyyy-MM-dd HH:mm:ss");
String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(-1), "yyyy-MM-dd HH:mm:ss");
//拿到所有设备 //拿到所有设备
List<EquipInfo> equipInfo = basicInfoMapper.findList(new WhereFilter(),EquipInfo.class); List<EquipInfo> equipInfo = basicInfoMapper.findList(new WhereFilter(),EquipInfo.class);
...@@ -51,7 +55,7 @@ public class StatisticsTimeJob extends QuartzJobBean { ...@@ -51,7 +55,7 @@ public class StatisticsTimeJob extends QuartzJobBean {
String equipCode = info.getEquipCode(); String equipCode = info.getEquipCode();
long totalRuntime = 0; long totalRuntime = 0;
//查询今日设备所有运行状态数据 //查询今日设备所有运行状态数据
List<EquipmentData> runData = equipDataService.findRunByCodeAndDate(equipCode, yesterday); List<EquipmentData> runData = equipDataService.findRunByCodeAndDate2(equipCode, startOfDay, endOfDay);
if (CollectionUtils.isEmpty(runData)) { if (CollectionUtils.isEmpty(runData)) {
continue; continue;
} }
......
package net.vtstar.zhongtong.avi.equipment.service;
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.WhereFilter;
import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper;
import net.vtstar.zhongtong.avi.gateway.painting.domain.DryingRoomTempMachine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Slf4j
@Service
public class DryingRoomTempService {
@Autowired
private EquipDataService equipDataService;
@Autowired
private EquipmentDataMapper dataMapper;
/**
* 查询温度状态列表
*/
public List<EquipmentData> findPageEquip(String equipCode, Date beginTime) {
PageHelper.startPage(1, 20);
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);
}
public List<DryingRoomTempMachine> getTempByStateId(String beginTime, String endTime) {
return dataMapper.findJoin(new WhereFilter() {{
addFilter("create_time", Operation.EQUAL_GREATER_THAN, beginTime);
addFilter("create_time", Operation.EQUAL_LESS_THAN, endTime);
}}, DryingRoomTempMachine.class);
}
}
...@@ -3,18 +3,21 @@ package net.vtstar.zhongtong.avi.gateway.assembly.job; ...@@ -3,18 +3,21 @@ package net.vtstar.zhongtong.avi.gateway.assembly.job;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.equipmgt.domain.EquipInfo; import net.vtstar.scada.base.equipmgt.domain.EquipInfo;
import net.vtstar.scada.base.equipmgt.mapper.EquipInfoMapper; import net.vtstar.scada.base.equipmgt.mapper.EquipInfoMapper;
import net.vtstar.scada.base.equipmgt.service.EquipDataService;
import net.vtstar.scada.base.equipmgt.service.EquipInfoService; import net.vtstar.scada.base.equipmgt.service.EquipInfoService;
import net.vtstar.scada.base.gather.domain.EquipmentData; import net.vtstar.scada.base.gather.domain.EquipmentData;
import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper;
import net.vtstar.zhongtong.avi.gateway.assembly.domain.PlateChainMachine;
import org.quartz.DisallowConcurrentExecution; import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.quartz.QuartzJobBean; import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -28,12 +31,15 @@ public class PlateChainTimeMachineJob extends QuartzJobBean { ...@@ -28,12 +31,15 @@ public class PlateChainTimeMachineJob extends QuartzJobBean {
@Autowired @Autowired
EquipInfoMapper equipInfoMapper; EquipInfoMapper equipInfoMapper;
@Resource(name = "jdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Autowired @Autowired
private EquipInfoService equipInfoService; private EquipInfoService equipInfoService;
@Autowired
private EquipDataService equipDataService;
@Autowired
private EquipmentDataMapper dataMapper;
private static final String NAME = "ASSEMBLY_PLATE_CHAIN"; private static final String NAME = "ASSEMBLY_PLATE_CHAIN";
/** /**
...@@ -46,9 +52,38 @@ public class PlateChainTimeMachineJob extends QuartzJobBean { ...@@ -46,9 +52,38 @@ public class PlateChainTimeMachineJob extends QuartzJobBean {
return; return;
} }
for (EquipInfo equipInfo : equipInfoList){ for (EquipInfo equipInfo : equipInfoList){
List<EquipmentData> data = jdbcTemplate.queryForList("select id,equip_type,equip_code,equip_status,begin_time,end_time " + String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(0, new Date()), "yyyy-MM-dd HH:mm:ss");
"from equip_status_record " + String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(0, new Date()), "yyyy-MM-dd HH:mm:ss");
"where equip_code = '" + equipInfo.getEquipCode() + "' and DATE(currentDate) = DATE(end_time) and equip_status = 'RUN'", EquipmentData.class); List<EquipmentData> runByCodeAndDate = equipDataService.findRunByCodeAndDate2(equipInfo.getEquipCode(), startOfDay, endOfDay);
if (runByCodeAndDate.size() < 2){
continue;
}
Date startTime = null;
//总间隔时间
long totalTime = 0;
for (EquipmentData equipmentData : runByCodeAndDate){
if (null == startTime){
startTime = equipmentData.getEndTime();
continue;
}
//如果记录的开始时间大于上一条记录的结束时间
Date beginTime = equipmentData.getBeginTime();
if (null == beginTime){
continue;
}
if (beginTime.after(startTime)){
totalTime = totalTime + beginTime.getTime() - startTime.getTime();
}
}
if (totalTime != 0){
PlateChainMachine plateChainMachine = new PlateChainMachine();
plateChainMachine.setEquipCode(equipInfo.getEquipCode());
plateChainMachine.setAlias(equipInfo.getAlias());
plateChainMachine.setCreateTime(new Date());
String averageTime = (totalTime / runByCodeAndDate.size() / 1000 / 60) + "min" + (totalTime / runByCodeAndDate.size() / 1000 % 60) + "s";
plateChainMachine.setAverageTime(averageTime);
dataMapper.insert(plateChainMachine);
}
} }
} }
......
...@@ -22,15 +22,12 @@ public class DryingRoomTempMachine extends EquipmentData { ...@@ -22,15 +22,12 @@ public class DryingRoomTempMachine extends EquipmentData {
@ApiModelProperty(notes = "温度") @ApiModelProperty(notes = "温度")
private Float temperature; private Float temperature;
@Column(name = "combustion_machine_state1")
@ApiModelProperty(notes = "燃烧机状态1") @ApiModelProperty(notes = "燃烧机状态1")
private Integer combustionMachineState1; private Integer combustionMachineState1;
@Column(name = "combustion_machine_state2")
@ApiModelProperty(notes = "燃烧机状态2") @ApiModelProperty(notes = "燃烧机状态2")
private Integer combustionMachineState2; private Integer combustionMachineState2;
@Column(name = "combustion_machine_state3")
@ApiModelProperty(notes = "燃烧机状态3") @ApiModelProperty(notes = "燃烧机状态3")
private Integer combustionMachineState3; private Integer combustionMachineState3;
......
...@@ -16,7 +16,7 @@ import java.util.Date; ...@@ -16,7 +16,7 @@ import java.util.Date;
@Search(code = "PLATE_CHAIN") @Search(code = "PLATE_CHAIN")
@ApiModel(value = "板链", description = "焊装板链监控数据表") @ApiModel(value = "板链", description = "焊装板链监控数据表")
@Table(name = "eqp_data_plate_chain") @Table(name = "eqp_data_plate_chain")
public class PlateChainMachine extends EquipmentData { public class WeldingPlateChainMachine extends EquipmentData {
@Show(label = "设备编号") @Show(label = "设备编号")
@Column(name = "eqp_code") @Column(name = "eqp_code")
......
...@@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum; import net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum;
import net.vtstar.scada.base.gather.domain.EquipmentData; import net.vtstar.scada.base.gather.domain.EquipmentData;
import net.vtstar.scada.base.gather.job.GatherJob; import net.vtstar.scada.base.gather.job.GatherJob;
import net.vtstar.zhongtong.avi.gateway.welding.domain.PlateChainMachine; import net.vtstar.zhongtong.avi.gateway.welding.domain.WeldingPlateChainMachine;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -24,12 +24,12 @@ public class PlateChainMachineJob extends GatherJob { ...@@ -24,12 +24,12 @@ public class PlateChainMachineJob extends GatherJob {
protected void executeInternal(JobExecutionContext context) throws JobExecutionException { protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
log.info("JobName: {}", context.getJobDetail().getKey().getName()); log.info("JobName: {}", context.getJobDetail().getKey().getName());
super.gatherByModbus(NAME, PlateChainMachine.class); super.gatherByModbus(NAME, WeldingPlateChainMachine.class);
} }
@Override @Override
public boolean handleObject(EquipmentData equipmentData) { public boolean handleObject(EquipmentData equipmentData) {
PlateChainMachine data = (PlateChainMachine) equipmentData; WeldingPlateChainMachine data = (WeldingPlateChainMachine) equipmentData;
String state = data.getStatus(); String state = data.getStatus();
if (state != null && "0".equals(state)) { if (state != null && "0".equals(state)) {
return false; return false;
...@@ -46,6 +46,6 @@ public class PlateChainMachineJob extends GatherJob { ...@@ -46,6 +46,6 @@ public class PlateChainMachineJob extends GatherJob {
@Override @Override
protected void postHandle(EquipmentData equipmentData) { protected void postHandle(EquipmentData equipmentData) {
((PlateChainMachine)equipmentData).setCreateTime(new Date()); ((WeldingPlateChainMachine)equipmentData).setCreateTime(new Date());
} }
} }
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