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

网关采集

parent 6356f29e
......@@ -137,11 +137,21 @@
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</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;
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.domain.EquipInfo;
import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord;
import net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper;
......@@ -44,6 +45,9 @@ public class StatisticsTimeJob extends QuartzJobBean {
instance.add(Calendar.DATE, -1);
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);
......@@ -51,7 +55,7 @@ public class StatisticsTimeJob extends QuartzJobBean {
String equipCode = info.getEquipCode();
long totalRuntime = 0;
//查询今日设备所有运行状态数据
List<EquipmentData> runData = equipDataService.findRunByCodeAndDate(equipCode, yesterday);
List<EquipmentData> runData = equipDataService.findRunByCodeAndDate2(equipCode, startOfDay, endOfDay);
if (CollectionUtils.isEmpty(runData)) {
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;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.equipmgt.domain.EquipInfo;
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.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.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
......@@ -28,12 +31,15 @@ public class PlateChainTimeMachineJob extends QuartzJobBean {
@Autowired
EquipInfoMapper equipInfoMapper;
@Resource(name = "jdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Autowired
private EquipInfoService equipInfoService;
@Autowired
private EquipDataService equipDataService;
@Autowired
private EquipmentDataMapper dataMapper;
private static final String NAME = "ASSEMBLY_PLATE_CHAIN";
/**
......@@ -46,9 +52,38 @@ public class PlateChainTimeMachineJob extends QuartzJobBean {
return;
}
for (EquipInfo equipInfo : equipInfoList){
List<EquipmentData> data = jdbcTemplate.queryForList("select id,equip_type,equip_code,equip_status,begin_time,end_time " +
"from equip_status_record " +
"where equip_code = '" + equipInfo.getEquipCode() + "' and DATE(currentDate) = DATE(end_time) and equip_status = 'RUN'", EquipmentData.class);
String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(0, new Date()), "yyyy-MM-dd HH:mm:ss");
String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(0, new Date()), "yyyy-MM-dd HH:mm:ss");
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 {
@ApiModelProperty(notes = "温度")
private Float temperature;
@Column(name = "combustion_machine_state1")
@ApiModelProperty(notes = "燃烧机状态1")
private Integer combustionMachineState1;
@Column(name = "combustion_machine_state2")
@ApiModelProperty(notes = "燃烧机状态2")
private Integer combustionMachineState2;
@Column(name = "combustion_machine_state3")
@ApiModelProperty(notes = "燃烧机状态3")
private Integer combustionMachineState3;
......
......@@ -16,7 +16,7 @@ import java.util.Date;
@Search(code = "PLATE_CHAIN")
@ApiModel(value = "板链", description = "焊装板链监控数据表")
@Table(name = "eqp_data_plate_chain")
public class PlateChainMachine extends EquipmentData {
public class WeldingPlateChainMachine extends EquipmentData {
@Show(label = "设备编号")
@Column(name = "eqp_code")
......
......@@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum;
import net.vtstar.scada.base.gather.domain.EquipmentData;
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.JobExecutionException;
import org.springframework.stereotype.Component;
......@@ -24,12 +24,12 @@ public class PlateChainMachineJob extends GatherJob {
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
log.info("JobName: {}", context.getJobDetail().getKey().getName());
super.gatherByModbus(NAME, PlateChainMachine.class);
super.gatherByModbus(NAME, WeldingPlateChainMachine.class);
}
@Override
public boolean handleObject(EquipmentData equipmentData) {
PlateChainMachine data = (PlateChainMachine) equipmentData;
WeldingPlateChainMachine data = (WeldingPlateChainMachine) equipmentData;
String state = data.getStatus();
if (state != null && "0".equals(state)) {
return false;
......@@ -46,6 +46,6 @@ public class PlateChainMachineJob extends GatherJob {
@Override
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