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

联调修改

parent 2bc23d54
...@@ -141,7 +141,11 @@ ...@@ -141,7 +141,11 @@
</resource> </resource>
<resource> <resource>
<directory>src/main/resources</directory> <directory>src/main/resources</directory>
<filtering>true</filtering> <filtering>false</filtering>
<excludes>
<exclude>**/*.ttf</exclude>
<exclude>**/*.woff</exclude>
</excludes>
</resource> </resource>
<resource> <resource>
<directory>src/main/resources/lib</directory> <directory>src/main/resources/lib</directory>
......
...@@ -49,13 +49,13 @@ public class EquipInfo { ...@@ -49,13 +49,13 @@ public class EquipInfo {
@ApiModelProperty(notes = "设备编号") @ApiModelProperty(notes = "设备编号")
@NotNull(message = "设备名称不能为空") @NotNull(message = "设备名称不能为空")
@Length(max = 100, message = "设备编号长度不能大于{max}") @Length(max = 100, message = "设备编号长度不能大于{max}")
@Column(name = "equip_code") @Column(name = "alias")
@Search @Search
private String equipCode; private String equipCode;
@ApiModelProperty(notes = "设备名称") @ApiModelProperty(notes = "设备名称")
@Length(max = 100, message = "设备名称长度不能大于{max}") @Length(max = 100, message = "设备名称长度不能大于{max}")
@Column(name = "alias") @Column(name = "equip_code")
@Search @Search
private String alias; private String alias;
......
...@@ -35,6 +35,7 @@ public class FaultRecord { ...@@ -35,6 +35,7 @@ public class FaultRecord {
private String equipCode; private String equipCode;
@ApiModelProperty(notes = "设备名称") @ApiModelProperty(notes = "设备名称")
@Column(name = "machine_code")
private String alias; private String alias;
@ApiModelProperty(notes = "故障信息") @ApiModelProperty(notes = "故障信息")
......
...@@ -35,11 +35,11 @@ public class RuntimeRecord { ...@@ -35,11 +35,11 @@ public class RuntimeRecord {
private Long machineId; private Long machineId;
@ApiModelProperty(notes = "设备编号") @ApiModelProperty(notes = "设备编号")
@JoinColumn(tableName = EquipInfo.class, name = "equip_code") @JoinColumn(tableName = EquipInfo.class, name = "alias")
private String equipCode; private String equipCode;
@ApiModelProperty(notes = "设备名称") @ApiModelProperty(notes = "设备名称")
@JoinColumn(tableName = EquipInfo.class, name = "alias") @JoinColumn(tableName = EquipInfo.class, name = "equip_code")
@Search @Search
private String alias; private String alias;
......
...@@ -16,6 +16,7 @@ import org.springframework.stereotype.Component; ...@@ -16,6 +16,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -50,8 +51,13 @@ public class CleanStatusDataJob extends QuartzJobBean { ...@@ -50,8 +51,13 @@ public class CleanStatusDataJob extends QuartzJobBean {
if (CollectionUtils.isEmpty(dataList)) { if (CollectionUtils.isEmpty(dataList)) {
continue; continue;
} }
if (key.contains("DRYING_ROOM_TEMP")){
//插入设备监控数据
equipmentDataMapper.insert(dataList.get(0));
}else{
//插入设备监控数据 //插入设备监控数据
equipmentDataMapper.insertList(dataList); equipmentDataMapper.insertList(dataList);
}
if (key.contains("DRYING_ROOM_TEMP") || key.contains("SPRAY_BOOTH")){ if (key.contains("DRYING_ROOM_TEMP") || key.contains("SPRAY_BOOTH")){
continue; continue;
} }
......
...@@ -8,6 +8,7 @@ import net.vtstar.user.mybatis.provider.Operation; ...@@ -8,6 +8,7 @@ import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.OrderBy; import net.vtstar.user.mybatis.provider.OrderBy;
import net.vtstar.user.mybatis.provider.WhereFilter; import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.user.search.service.SearchService; import net.vtstar.user.search.service.SearchService;
import net.vtstar.utils.CollecUtils;
import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo; import net.vtstar.zhongtong.avi.equipment.domain.EquipInfo;
import net.vtstar.zhongtong.avi.equipment.domain.FaultRecord; import net.vtstar.zhongtong.avi.equipment.domain.FaultRecord;
import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord; import net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord;
...@@ -90,10 +91,20 @@ public class RunRecordService { ...@@ -90,10 +91,20 @@ public class RunRecordService {
*/ */
public List<FaultRecord> findPageFault(JSONObject pageFilter) { public List<FaultRecord> findPageFault(JSONObject pageFilter) {
PageHelper.startPage(pageFilter.getIntValue("pageNum"), pageFilter.getIntValue("pageSize")); PageHelper.startPage(pageFilter.getIntValue("pageNum"), pageFilter.getIntValue("pageSize"));
return faultRecordMapper.findList(searchService.pageFilter2Filter(pageFilter, new WhereFilter() {{ List<FaultRecord> list = faultRecordMapper.findList(searchService.pageFilter2Filter(pageFilter, new WhereFilter() {{
/*addJoin(PaintshopStation.class, "area_id", PaintshopArea.class, "id"); /*addJoin(PaintshopStation.class, "area_id", PaintshopArea.class, "id");
addJoin(PaintshopStation.class, "lane_id", PaintshopLane.class, "id");*/ addJoin(PaintshopStation.class, "lane_id", PaintshopLane.class, "id");*/
}}), FaultRecord.class); }}), FaultRecord.class);
list.forEach(faultRecord -> {
faultRecord.getEquipCode();
List<EquipInfo> equipInfos = basicInfoMapper.findList(new WhereFilter() {{
addFilter("equip_code", Operation.EQUAL, faultRecord.getEquipCode());
}}, EquipInfo.class);
if (!CollecUtils.isEmpty(equipInfos)){
faultRecord.setEquipCode(equipInfos.get(0).getEquipCode());
}
});
return list;
} }
......
...@@ -14,7 +14,6 @@ import javax.persistence.Table; ...@@ -14,7 +14,6 @@ import javax.persistence.Table;
import java.util.Date; import java.util.Date;
@Data @Data
@Search(code = "PAINTING_ROBOT")
@ApiModel(value = "喷涂机器人", description = "喷涂机器人监控数据表") @ApiModel(value = "喷涂机器人", description = "喷涂机器人监控数据表")
@Table(name = "eqp_data_painting_robot") @Table(name = "eqp_data_painting_robot")
public class PaintingRobotMachine extends EquipmentData { public class PaintingRobotMachine extends EquipmentData {
......
package net.vtstar.zhongtong.avi.gateway.painting.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.vtstar.user.search.Search;
import net.vtstar.zhongtong.avi.global.web.Show;
import net.vtstar.zhongtong.avi.global.web.domain.enums.FieldType;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@Search(code = "PAINTING_ROBOT")
@ApiModel(value = "喷涂机器人", description = "喷涂机器人监控数据表")
@Table(name = "eqp_data_painting_robot_record")
public class PaintingRobotRecordMachine{
@Show(label = "设备名称")
@Column(name = "eqp_code")
@ApiModelProperty(notes = "设备名称")
@Search
private String equipCode;
@Show(label = "车型")
@Column(name = "bus_type")
@ApiModelProperty(notes = "车型")
private String busType;
@Show(label = "数量")
@Column(name = "num")
@ApiModelProperty(notes = "数量")
private Integer num;
@Show(label = "采集时间",dataType = FieldType.DATETIME)
@ApiModelProperty("时间")
@Column(name = "create_time")
@Search
private Date createTime;
@Id
private Long id;
@ApiModelProperty("采集状态")
@Column(name = "status")
private String status;
}
package net.vtstar.zhongtong.avi.gateway.painting.job;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.utils.CollecUtils;
import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.gateway.painting.domain.PaintingRobotRecordMachine;
import net.vtstar.zhongtong.avi.gateway.painting.mapper.PaintingRobotRecordMapper;
import net.vtstar.zhongtong.avi.monitoring.domain.StationPassInfo;
import net.vtstar.zhongtong.avi.monitoring.mapper.StationPassInfoMapper;
import net.vtstar.zhongtong.avi.sqlserver.domain.MesWorkOrderInfo;
import net.vtstar.zhongtong.avi.sqlserver.mapper.MesWorkOrderMapper;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 喷涂机器人运行次数统计JOB
*/
@Slf4j
@Component
public class PaintingRobotRecordMachineJob extends QuartzJobBean {
@Autowired
private PaintingRobotRecordMapper recordMapper;
@Autowired
private MesWorkOrderMapper mesWorkOrderMapper;
@Autowired
private StationPassInfoMapper mapper;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
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<StationPassInfo> list = mapper.findList(new WhereFilter() {{
addFilter(StationPassInfo.class, "station_no", Operation.EQUAL, "HDG1-125");
addFilter(StationPassInfo.class, "in_time", Operation.IS_NOT, "null");
addFilter(StationPassInfo.class, "create_time", Operation.EQUAL_GREATER_THAN, startOfDay);
addFilter(StationPassInfo.class, "create_time", Operation.EQUAL_LESS_THAN, endOfDay);
}}, StationPassInfo.class);
list.stream().filter(s -> s.getVIN() != null).forEach(stationPassInfo -> {
List<MesWorkOrderInfo> orderNo = mesWorkOrderMapper.findList(new WhereFilter() {{
addFilter("work_order_no", Operation.EQUAL, stationPassInfo.getVIN());
addFilter("status", Operation.EQUAL, "4");
}}, MesWorkOrderInfo.class);
if (!CollecUtils.isEmpty(orderNo)){
stationPassInfo.setBusType(orderNo.get(0).getVehicleModel());
}
});
Map<String, List<StationPassInfo>> collect = list.stream().filter(s -> s.getBusType() != null).collect(Collectors.groupingBy(StationPassInfo::getBusType));
for (Map.Entry<String, List<StationPassInfo>> entry : collect.entrySet()){
List<PaintingRobotRecordMachine> recordMachines = recordMapper.findList(new WhereFilter() {{
addFilter("bus_type", Operation.EQUAL, entry.getKey());
addFilter("create_time", Operation.EQUAL_GREATER_THAN, startOfDay);
addFilter("create_time", Operation.EQUAL_LESS_THAN, endOfDay);
}}, PaintingRobotRecordMachine.class);
if (CollecUtils.isEmpty(recordMachines)){
PaintingRobotRecordMachine machine = new PaintingRobotRecordMachine();
machine.setEquipCode("喷涂机器人");
machine.setBusType(entry.getKey());
machine.setNum(entry.getValue().size());
machine.setCreateTime(new Date());
recordMapper.insert(machine);
}else {
PaintingRobotRecordMachine machine = recordMachines.get(0);
machine.setBusType(entry.getKey());
machine.setNum(entry.getValue().size());
machine.setCreateTime(new Date());
recordMapper.update(machine);
}
}
}
}
...@@ -46,37 +46,37 @@ public class SprayBoothListener implements CommandLineRunner { ...@@ -46,37 +46,37 @@ public class SprayBoothListener implements CommandLineRunner {
String name = ""; String name = "";
switch (deviceId) { switch (deviceId) {
case 30019199: case 30019199:
name = "喷漆室-01"; name = "底架喷漆室";
break; break;
case 30019212: case 30019212:
name = "喷漆室-02"; name = "中涂喷漆室349";
break; break;
case 30019220: case 30019220:
name = "喷漆室-03"; name = "中涂喷漆室350";
break; break;
case 30019158: case 30019158:
name = "喷漆室-04"; name = "彩条喷漆室365";
break; break;
case 30019217: case 30019217:
name = "喷漆室-05"; name = "彩条喷漆室367";
break; break;
case 30019414: case 30019414:
name = "喷漆室-06"; name = "彩条喷漆室369";
break; break;
case 30019151: case 30019151:
name = "喷漆室-07"; name = "彩条喷漆室371";
break; break;
case 30019183: case 30019183:
name = "喷漆室-08"; name = "罩光喷漆室374";
break; break;
case 30019370: case 30019370:
name = "喷漆室-09"; name = "面漆喷漆室359";
break; break;
case 30018326: case 30018326:
name = "喷漆室-10"; name = "面漆喷漆室363";
break; break;
case 30019186: case 30019186:
name = "喷漆室-11"; name = "面漆喷漆室361";
break; break;
case 30019193: case 30019193:
name = "喷漆室-12"; name = "喷漆室-12";
...@@ -85,6 +85,7 @@ public class SprayBoothListener implements CommandLineRunner { ...@@ -85,6 +85,7 @@ public class SprayBoothListener implements CommandLineRunner {
name = "喷漆室-13"; name = "喷漆室-13";
break; break;
default: default:
name = "彩条喷漆室369";
break; break;
} }
......
package net.vtstar.zhongtong.avi.gateway.painting.mapper;
import net.vtstar.user.mybatis.BaseMapper;
import net.vtstar.zhongtong.avi.gateway.painting.domain.PaintingRobotRecordMachine;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PaintingRobotRecordMapper extends BaseMapper<PaintingRobotRecordMachine> {
}
...@@ -53,6 +53,9 @@ public class DustingLineMachineJob extends GatherJob { ...@@ -53,6 +53,9 @@ public class DustingLineMachineJob extends GatherJob {
return "喷粉"; return "喷粉";
} }
} }
if("chainSpeed".equals(fieldName) && null != value){
return Integer.valueOf(value.toString()) / 100;
}
return value; return value;
} }
......
...@@ -11,6 +11,7 @@ import net.vtstar.zhongtong.avi.laboratory.domain.DailyCheckModel; ...@@ -11,6 +11,7 @@ import net.vtstar.zhongtong.avi.laboratory.domain.DailyCheckModel;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemModel; import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemModel;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemRecord; import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemRecord;
import net.vtstar.zhongtong.avi.laboratory.domain.vo.CheckRecordVo; import net.vtstar.zhongtong.avi.laboratory.domain.vo.CheckRecordVo;
import net.vtstar.zhongtong.avi.laboratory.domain.vo.DailyItemRecordVo;
import net.vtstar.zhongtong.avi.laboratory.service.DailyCheckService; import net.vtstar.zhongtong.avi.laboratory.service.DailyCheckService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
...@@ -127,10 +128,9 @@ public class DailyCheckController { ...@@ -127,10 +128,9 @@ public class DailyCheckController {
@GetMapping("/getCheckItemRecord") @GetMapping("/getCheckItemRecord")
public Return getCheckItemRecord(@RequestParam(value = "modelId") Long modelId, public Return getCheckItemRecord(@RequestParam(value = "modelId") Long modelId,
@RequestParam(value = "itemNames", required = false) String[] itemNames, @RequestParam(value = "itemNames", required = false) String[] itemNames,
@RequestParam(value = "beginTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date beginTime, @RequestParam(value = "currentMonth", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date currentMonth) {
@RequestParam(value = "endTime", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date endTime) {
ParamAssert.notNull(modelId, "模板ID不能为空!"); ParamAssert.notNull(modelId, "模板ID不能为空!");
Map<String, List<DailyItemRecord>> map = service.getCheckItemRecord(modelId, itemNames, beginTime, endTime); List<DailyItemRecordVo> map = service.getCheckItemRecord(modelId, itemNames, currentMonth);
return Return.success(map); return Return.success(map);
} }
} }
package net.vtstar.zhongtong.avi.laboratory.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemRecord;
import java.util.List;
/**
* @Author: xiadongwei
* @Date: 2019/10/20 16:23
*/
@Data
public class DailyItemRecordVo {
@ApiModelProperty(notes = "检测项名称")
private String name;
@ApiModelProperty(notes = "检测项记录")
private List<DailyItemRecord> itemRecords;
}
...@@ -8,12 +8,14 @@ import net.vtstar.user.mybatis.provider.OrderBy; ...@@ -8,12 +8,14 @@ import net.vtstar.user.mybatis.provider.OrderBy;
import net.vtstar.user.mybatis.provider.WhereFilter; import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.user.search.service.SearchService; import net.vtstar.user.search.service.SearchService;
import net.vtstar.user.util.UserUtil; import net.vtstar.user.util.UserUtil;
import net.vtstar.utils.CollecUtils;
import net.vtstar.utils.DateUtils; import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyCheckModel; import net.vtstar.zhongtong.avi.laboratory.domain.DailyCheckModel;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyCheckRecord; import net.vtstar.zhongtong.avi.laboratory.domain.DailyCheckRecord;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemModel; import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemModel;
import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemRecord; import net.vtstar.zhongtong.avi.laboratory.domain.DailyItemRecord;
import net.vtstar.zhongtong.avi.laboratory.domain.vo.CheckRecordVo; import net.vtstar.zhongtong.avi.laboratory.domain.vo.CheckRecordVo;
import net.vtstar.zhongtong.avi.laboratory.domain.vo.DailyItemRecordVo;
import net.vtstar.zhongtong.avi.laboratory.mapper.DailyCheckModelMapper; import net.vtstar.zhongtong.avi.laboratory.mapper.DailyCheckModelMapper;
import net.vtstar.zhongtong.avi.laboratory.mapper.DailyCheckRecordMapper; import net.vtstar.zhongtong.avi.laboratory.mapper.DailyCheckRecordMapper;
import net.vtstar.zhongtong.avi.laboratory.mapper.DailyItemModelMapper; import net.vtstar.zhongtong.avi.laboratory.mapper.DailyItemModelMapper;
...@@ -120,10 +122,12 @@ public class DailyCheckService { ...@@ -120,10 +122,12 @@ public class DailyCheckService {
DailyCheckRecord checkRecord = checkRecordVo.getCheckRecord(); DailyCheckRecord checkRecord = checkRecordVo.getCheckRecord();
checkRecordMapper.insertRecord(checkRecord); checkRecordMapper.insertRecord(checkRecord);
List<DailyItemRecord> itemRecords = checkRecordVo.getItemRecords(); List<DailyItemRecord> itemRecords = checkRecordVo.getItemRecords();
for (DailyItemRecord itemRecord : itemRecords) { itemRecords.forEach(item -> {
itemRecord.setCheckRecordId(checkRecord.getId()); if (null != item.getCheckResult()){
item.setCheckRecordId(checkRecord.getId());
itemRecordMapper.insert(item);
} }
itemRecordMapper.insertList(itemRecords); });
} }
/** /**
...@@ -236,11 +240,14 @@ public class DailyCheckService { ...@@ -236,11 +240,14 @@ public class DailyCheckService {
}}, DailyItemModel.class); }}, DailyItemModel.class);
} }
public Map<String, List<DailyItemRecord>> getCheckItemRecord(Long modelId, String[] itemNames, Date beginTime, Date endTime) { public List<DailyItemRecordVo> getCheckItemRecord(Long modelId, String[] itemNames, Date currentMonth) {
if (null == beginTime || null == endTime){ if (null == currentMonth){
beginTime = DateUtils.getMonthStart(0, new Date()); currentMonth = new Date();
endTime = DateUtils.getMonthEnd(0, new Date());
} }
Map<String, List<DailyItemRecord>> map = new HashMap<>();
List<DailyItemRecordVo> voList = new ArrayList();
Date beginTime = DateUtils.getMonthStart(0, currentMonth);
Date endTime = DateUtils.getMonthEnd(0, currentMonth);
String startTimeStr = DateUtils.parseDateToString(beginTime, "yyyy-MM-dd HH:mm:ss"); String startTimeStr = DateUtils.parseDateToString(beginTime, "yyyy-MM-dd HH:mm:ss");
String endTimeStr = DateUtils.parseDateToString(endTime, "yyyy-MM-dd HH:mm:ss"); String endTimeStr = DateUtils.parseDateToString(endTime, "yyyy-MM-dd HH:mm:ss");
if (null == itemNames || itemNames.length == 0){ if (null == itemNames || itemNames.length == 0){
...@@ -259,8 +266,8 @@ public class DailyCheckService { ...@@ -259,8 +266,8 @@ public class DailyCheckService {
addFilter("create_time", Operation.LESS_THAN, endTimeStr); addFilter("create_time", Operation.LESS_THAN, endTimeStr);
addOrderBy("create_time", OrderBy.ASC); addOrderBy("create_time", OrderBy.ASC);
}}, DailyItemRecord.class); }}, DailyItemRecord.class);
return list.stream().collect(Collectors.groupingBy(DailyItemRecord :: getName)); map = list.stream().collect(Collectors.groupingBy(DailyItemRecord::getName));
} }else {
StringBuffer sbuffer= new StringBuffer(); StringBuffer sbuffer= new StringBuffer();
for (String itemName : itemNames){ for (String itemName : itemNames){
sbuffer.append("'"); sbuffer.append("'");
...@@ -273,6 +280,16 @@ public class DailyCheckService { ...@@ -273,6 +280,16 @@ public class DailyCheckService {
addFilter("create_time", Operation.LESS_THAN, endTimeStr); addFilter("create_time", Operation.LESS_THAN, endTimeStr);
addOrderBy("create_time", OrderBy.ASC); addOrderBy("create_time", OrderBy.ASC);
}}, DailyItemRecord.class); }}, DailyItemRecord.class);
return list.stream().collect(Collectors.groupingBy(DailyItemRecord :: getName)); map = list.stream().collect(Collectors.groupingBy(DailyItemRecord :: getName));
}
map.forEach((name, dailyItemRecords) -> {
if (!CollecUtils.isEmpty(dailyItemRecords)){
DailyItemRecordVo itemRecordVo = new DailyItemRecordVo();
itemRecordVo.setName(name);
itemRecordVo.setItemRecords(dailyItemRecords);
voList.add(itemRecordVo);
}
});
return voList;
} }
} }
...@@ -148,7 +148,9 @@ public class AreaController { ...@@ -148,7 +148,9 @@ public class AreaController {
@ApiOperation(value = "根据车身号获得当前车体信息", response = Bus.class) @ApiOperation(value = "根据车身号获得当前车体信息", response = Bus.class)
@GetMapping("/detail/busNo") @GetMapping("/detail/busNo")
private Return getBusDetail(@RequestParam(value = "busNo", required = false) String busNo) { private Return getBusDetail(@RequestParam(value = "busNo", required = false) String busNo) {
if (null == busNo){
return Return.success();
}
Bus bus = areaService.getByBusNo(busNo); Bus bus = areaService.getByBusNo(busNo);
return Return.success(bus); return Return.success(bus);
} }
......
...@@ -33,4 +33,9 @@ public class StationPassInfo { ...@@ -33,4 +33,9 @@ public class StationPassInfo {
@Column(name = "out_time") @Column(name = "out_time")
private Date outTime; private Date outTime;
@Column(name = "create_time")
private Date createTime;
private String busType;
} }
package net.vtstar.zhongtong.avi.monitoring.job;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.protocol.modbus.tcp.netty.utils.NettyUtils;
import net.vtstar.protocol.modbus.tcp.netty.utils.PoolKey;
import net.vtstar.scada.base.equipmgt.domain.*;
import net.vtstar.scada.base.equipmgt.service.EquipInfoService;
import net.vtstar.scada.base.gather.job.GatherJob;
import net.vtstar.scada.base.global.service.ModbusService;
import net.vtstar.utils.CollecUtils;
import net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation;
import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
import net.wimpi.modbus.io.ModbusTCPTransaction;
import net.wimpi.modbus.msg.*;
import net.wimpi.modbus.net.TCPMasterConnection;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.Cache;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@Component
public class AVIElectrophoresisJob extends GatherJob {
//电泳空中行车
private static final String EQUIPMENT_TYPE = "PLC_E";
@Autowired
private EquipInfoService equipInfoService;
@Autowired
private ModbusService modbusService;
@Resource(name = "redisTemplate")
private ValueOperations valueOperations;
@Resource(name = "laneStationCache")
private Cache laneStationCache;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
log.info("-------------------------------");
log.info("AVIElectrophoresisJob start");
List<PaintshopStation> temStation = laneStationCache.get(Long.valueOf("111"), ArrayList.class);
if (CollecUtils.isEmpty(temStation) || temStation.size() != 14){
log.error("空中行车的工位数不对!");
return;
}
Map<Integer, List<PaintshopStation>> collect = temStation.stream().collect(Collectors.groupingBy(PaintshopStation::getSequence));
//处理空中行车
List<EquipCommunication> commList = equipInfoService.getCommunicationListByEquipType(EQUIPMENT_TYPE, 1);
if (CollectionUtils.isEmpty(commList)) {
return;
}
for (EquipCommunication communication : commList) {
EquipDataChannel dataChannel = communication.getDataChannel();
if (null != dataChannel.getEquipCode() && !dataChannel.getEquipCode().startsWith(EQUIPMENT_TYPE)) {
continue;
}
String ip = dataChannel.getIp();
Integer port = dataChannel.getPort();
PoolKey poolKey = NettyUtils.wrapPoolKey(ip, port);
Integer slaveId = dataChannel.getNo();
EquipDataTemplate template = communication.getDataTemplate();
if (template == null) {
log.info("无法获取设备的数据模板,设备编号:{}", dataChannel.getEquipCode());
continue;
}
List<EquipDataTemplateItem> templateItemList = template.getTemplateItemList();
if (CollectionUtils.isEmpty(templateItemList)) {
// log.info("无法获取数据模板的条目,设备编号:{},模板名称:{}", dataChannel.getEquipCode(), template.getName());
continue;
}
Map<Integer, List<EquipDataTemplateItem>> listMap = modbusService.groupByFuntionCode(templateItemList);
for (Map.Entry<Integer, List<EquipDataTemplateItem>> entry : listMap.entrySet()) {
List<EquipDataTemplateItem> value = entry.getValue();
if (CollectionUtils.isEmpty(value)) {
continue;
}
Integer start = value.get(0).getAddress();
Integer end = value.get(value.size() - 1).getAddress();
Integer size = value.get(value.size() - 1).getLength();
Integer quantity = end + size - start;
Integer functionCode = entry.getKey();
ModbusRequest modbusRequest = null;
ModbusResponse response = null;
if (1 == functionCode) {
modbusRequest = new ReadCoilsRequest(start, quantity);
} else if (2 == functionCode) {
modbusRequest = new ReadInputDiscretesRequest(start, quantity);
} else if (3 == functionCode) {
modbusRequest = new ReadMultipleRegistersRequest(start, quantity);
} else if (4 == functionCode) {
modbusRequest = new ReadInputRegistersRequest(start, quantity);
}
modbusRequest.setUnitID(slaveId);
try {
TCPMasterConnection connection = new TCPMasterConnection(InetAddress.getByName(poolKey.getHost()));
connection.setPort(port);
connection.setTimeout(3000);
connection.connect();
ModbusTCPTransaction transaction = new ModbusTCPTransaction(connection);
transaction.setReconnecting(false);
transaction.setRequest(modbusRequest);
transaction.execute();
response = transaction.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
if (null == response) {
log.error("读取失败! response 为空!");
return;
}
String[] hexStrs = response.getHexMessage().split(" ");
if (hexStrs.length == 9) {
log.error("读取失败! length 为9!");
return;
}
StringBuilder sb = new StringBuilder();
for (int i = 9; i < hexStrs.length; i++) {
Integer newValue = Integer.valueOf(hexStrs[i], 16);
int j = 0;
while (j < 8) {
sb.append(newValue % 2);
newValue = newValue / 2;
j++;
}
}
byte[] bytes = sb.toString().getBytes();
for (EquipDataTemplateItem templateItem : value) {
Integer address = templateItem.getAddress();
int quality = address - start;
byte state = bytes[quality];
String fieldName = templateItem.getFieldName();
String sequence = fieldName.split(":")[1];
PaintshopStation station = collect.get(Integer.valueOf(sequence)).get(0);
if (state == 48) {
station.setState(StationState.FREE);
} else {
station.setState(StationState.USE);
}
valueOperations.set(Constant.STATION_PREFIX + station.getCode(), station);
}
}
}
}
}
\ No newline at end of file
...@@ -345,9 +345,9 @@ public class AVIMonitorJob extends GatherJob { ...@@ -345,9 +345,9 @@ public class AVIMonitorJob extends GatherJob {
PaintshopStation end = lands.get(lands.size() - 1); PaintshopStation end = lands.get(lands.size() - 1);
//下车时, 记录进去车道的开始时间, 并将记录ID绑定在工位上 //下车时, 记录进去车道的开始时间, 并将记录ID绑定在工位上
Long passInfoId = 0L; Long passInfoId = 0L;
if (null != skid){ /*if (null != skid){
passInfoId = passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), station.getAreaName(), station.getLandNo()); passInfoId = passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), station.getAreaName(), station.getLandNo());
} }*/
if (start.getCode().equals(station.getCode())) { if (start.getCode().equals(station.getCode())) {
for (int j = lands.size() - 1; j > 0; j--) { for (int j = lands.size() - 1; j > 0; j--) {
PaintshopStation tem = lands.get(j); PaintshopStation tem = lands.get(j);
......
...@@ -42,7 +42,11 @@ public class AreaService { ...@@ -42,7 +42,11 @@ public class AreaService {
for (PaintshopArea area : areas) { for (PaintshopArea area : areas) {
if (areaNo.equals(area.getCode())) { if (areaNo.equals(area.getCode())) {
int num = 0; int num = 0;
for (Map.Entry<String, PaintshopStation> entry : area.getStationMap().entrySet()){ Map<String, PaintshopStation> stationMap = area.getStationMap();
if (null == stationMap){
continue;
}
for (Map.Entry<String, PaintshopStation> entry : stationMap.entrySet()){
PaintshopStation value = entry.getValue(); PaintshopStation value = entry.getValue();
if (StationState.USE.equals(value.getState())){ if (StationState.USE.equals(value.getState())){
num ++; num ++;
...@@ -84,10 +88,10 @@ public class AreaService { ...@@ -84,10 +88,10 @@ public class AreaService {
PaintshopStation value = entry.getValue(); PaintshopStation value = entry.getValue();
String key = entry.getKey(); String key = entry.getKey();
for (String no : nos) { for (String no : nos) {
if (null == value.getBusNo()) { if (null == value.getWorkOrderNo()) {
continue; continue;
} }
if (value.getBusNo().equals(no)) { if (value.getWorkOrderNo().equals(no)) {
newMap.put(key, value); newMap.put(key, value);
} }
} }
......
...@@ -8,7 +8,9 @@ import net.vtstar.zhongtong.avi.global.constant.Constant; ...@@ -8,7 +8,9 @@ import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Skid; import net.vtstar.zhongtong.avi.monitoring.domain.Skid;
import net.vtstar.zhongtong.avi.monitoring.domain.Vehicle; import net.vtstar.zhongtong.avi.monitoring.domain.Vehicle;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState; import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
import net.vtstar.zhongtong.avi.sqlserver.domain.MesHZWorkOrderInfo;
import net.vtstar.zhongtong.avi.sqlserver.domain.MesWorkOrderInfo; import net.vtstar.zhongtong.avi.sqlserver.domain.MesWorkOrderInfo;
import net.vtstar.zhongtong.avi.sqlserver.mapper.MesHZWorkOrderMapper;
import net.vtstar.zhongtong.avi.sqlserver.mapper.MesWorkOrderMapper; import net.vtstar.zhongtong.avi.sqlserver.mapper.MesWorkOrderMapper;
import net.vtstar.zhongtong.avi.utils.EquipDataUtil; import net.vtstar.zhongtong.avi.utils.EquipDataUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -30,7 +32,7 @@ public class PDAService { ...@@ -30,7 +32,7 @@ public class PDAService {
@Resource(name = "redisTemplate") @Resource(name = "redisTemplate")
protected ValueOperations valueOperations; protected ValueOperations valueOperations;
@Autowired @Autowired
private MesWorkOrderMapper mesWorkOrderMapper; private MesHZWorkOrderMapper mesWorkOrderMapper;
@Resource(name = "redisTemplate") @Resource(name = "redisTemplate")
protected ValueOperations testValueOperations; protected ValueOperations testValueOperations;
@Resource(name = "laneStationCache") @Resource(name = "laneStationCache")
...@@ -40,16 +42,16 @@ public class PDAService { ...@@ -40,16 +42,16 @@ public class PDAService {
public boolean bound(String vehicleNo, String busNo, String workOrderNo) { public boolean bound(String vehicleNo, String busNo, String workOrderNo) {
// TODO: 2019-11-02 判断车身工单号是否在计划中 // TODO: 2019-11-02 判断车身工单号是否在计划中
List<MesWorkOrderInfo> list = mesWorkOrderMapper.findList(new WhereFilter() {{ List<MesHZWorkOrderInfo> list = mesWorkOrderMapper.findList(new WhereFilter() {{
addFilter("work_order_no", Operation.EQUAL, workOrderNo); addFilter("WONo", Operation.EQUAL, workOrderNo);
addFilter("status", Operation.EQUAL, 4); }}, MesHZWorkOrderInfo.class);
}}, MesWorkOrderInfo.class);
if (CollecUtils.isEmpty(list)){ if (CollecUtils.isEmpty(list)){
return false; return false;
} }
if (null == busNo){ if (null == busNo){
busNo = ""; busNo = "";
} }
workOrderNo.replace("HZ", "TZ");
String keyW = EquipDataUtil.getTestValueKey("ROTARY_ROLLER_BED_W"); String keyW = EquipDataUtil.getTestValueKey("ROTARY_ROLLER_BED_W");
testValueOperations.set(keyW, null == testValueOperations.get(keyW) ? 0 : ((int)testValueOperations.get(keyW)) + 1); testValueOperations.set(keyW, null == testValueOperations.get(keyW) ? 0 : ((int)testValueOperations.get(keyW)) + 1);
if (vehicleNo.equals("HZC1")) { if (vehicleNo.equals("HZC1")) {
......
...@@ -56,13 +56,17 @@ public class StationPassInfoService { ...@@ -56,13 +56,17 @@ public class StationPassInfoService {
public Long createPassInfo(String workOrderNo, String rfid, String areaNo, String stationNo){ public Long createPassInfo(String workOrderNo, String rfid, String areaNo, String stationNo){
StationPassInfo info = new StationPassInfo(); StationPassInfo info = new StationPassInfo();
info.setVIN(workOrderNo); info.setVIN(workOrderNo);
info.setAreaNo(areaNo);
if (null == workOrderNo){ if (null == workOrderNo){
info.setVIN(""); info.setVIN("");
} }
if (null == areaNo){
info.setAreaNo("");
}
info.setRfid(rfid); info.setRfid(rfid);
info.setAreaNo(areaNo);
info.setStationNo(stationNo); info.setStationNo(stationNo);
info.setInTime(new Date()); info.setInTime(new Date());
info.setCreateTime(new Date());
passInfoMapper.insert(info); passInfoMapper.insert(info);
String sql = "INSERT INTO VEHICLE_PASSING_INFO VALUES (?,?,?,?,?,?,?)"; String sql = "INSERT INTO VEHICLE_PASSING_INFO VALUES (?,?,?,?,?,?,?)";
mesSqlServerJdbcTemplate.update(sql, new Object[]{info.getVIN(), info.getRfid(), info.getAreaNo(), mesSqlServerJdbcTemplate.update(sql, new Object[]{info.getVIN(), info.getRfid(), info.getAreaNo(),
...@@ -74,13 +78,17 @@ public class StationPassInfoService { ...@@ -74,13 +78,17 @@ public class StationPassInfoService {
public void endPassInfo(PaintshopStation station){ public void endPassInfo(PaintshopStation station){
StationPassInfo info = new StationPassInfo(); StationPassInfo info = new StationPassInfo();
info.setVIN(station.getSkid().getWorkOrderNo()); info.setVIN(station.getSkid().getWorkOrderNo());
info.setAreaNo(station.getAreaName());
if (null == station.getSkid().getWorkOrderNo()){ if (null == station.getSkid().getWorkOrderNo()){
info.setVIN(""); info.setVIN("");
} }
if (null == station.getAreaName()){
info.setAreaNo("");
}
info.setRfid(station.getSkid().getRfid()); info.setRfid(station.getSkid().getRfid());
info.setAreaNo(station.getAreaName());
info.setStationNo(station.getCode()); info.setStationNo(station.getCode());
info.setOutTime(new Date()); info.setOutTime(new Date());
info.setCreateTime(new Date());
passInfoMapper.insert(info); passInfoMapper.insert(info);
//todo:!!!!!!!!!!!!!!!! //todo:!!!!!!!!!!!!!!!!
String sql = "INSERT INTO VEHICLE_PASSING_INFO VALUES (?,?,?,?,?,?,?)"; String sql = "INSERT INTO VEHICLE_PASSING_INFO VALUES (?,?,?,?,?,?,?)";
......
...@@ -6,12 +6,15 @@ import io.swagger.annotations.ApiImplicitParams; ...@@ -6,12 +6,15 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.vtstar.user.mybatis.provider.Operation; 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.mybatis.provider.WhereFilter;
import net.vtstar.utils.CollecUtils;
import net.vtstar.utils.DateUtils; import net.vtstar.utils.DateUtils;
import net.vtstar.utils.domain.Return; import net.vtstar.utils.domain.Return;
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.RuntimeRecordMapper; import net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper;
import net.vtstar.zhongtong.avi.equipment.service.EquipmentService;
import net.vtstar.zhongtong.avi.global.constant.Constant; import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning; 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.EquStatePercent;
...@@ -28,10 +31,8 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -28,10 +31,8 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Date; import java.util.stream.Collectors;
import java.util.List;
import java.util.Random;
@Slf4j @Slf4j
@Api(description = "中控室监控页面") @Api(description = "中控室监控页面")
...@@ -46,6 +47,9 @@ public class ReportController { ...@@ -46,6 +47,9 @@ public class ReportController {
@Autowired @Autowired
private RuntimeRecordMapper runtimeRecordMapper; private RuntimeRecordMapper runtimeRecordMapper;
@Autowired
private EquipmentService equipmentService;
private Integer errNum = 2; private Integer errNum = 2;
private Integer runNum = 5; private Integer runNum = 5;
...@@ -207,14 +211,42 @@ public class ReportController { ...@@ -207,14 +211,42 @@ public class ReportController {
@GetMapping("/runTimeList") @GetMapping("/runTimeList")
private Return getMachineRunTime(@RequestParam String workshopCode){ private Return getMachineRunTime(@RequestParam String workshopCode){
List<RuntimeRecord> list = new ArrayList<>(); List<RuntimeRecord> list = new ArrayList<>();
String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(0), "yyyy-MM-dd HH:mm:ss"); String startOfDay = DateUtils.parseDateToString(DateUtils.getStartOfDay(7), "yyyy-MM-dd HH:mm:ss");
String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(0), "yyyy-MM-dd HH:mm:ss"); String endOfDay = DateUtils.parseDateToString(DateUtils.getEndOfDay(0), "yyyy-MM-dd HH:mm:ss");
int hour = DateUtil.getHour(new Date());
list = runtimeRecordMapper.findList(new WhereFilter() {{ list = runtimeRecordMapper.findList(new WhereFilter() {{
addFilter(RuntimeRecord.class,"create_time", Operation.GREATER_THAN, startOfDay); addFilter(RuntimeRecord.class,"create_time", Operation.GREATER_THAN, startOfDay);
addFilter(RuntimeRecord.class,"create_time", Operation.LESS_THAN, endOfDay); addFilter(RuntimeRecord.class,"create_time", Operation.LESS_THAN, endOfDay);
addFilter(RuntimeRecord.class,"workshop_code", Operation.EQUAL, workshopCode); addFilter(RuntimeRecord.class,"workshop_code", Operation.EQUAL, workshopCode);
addJoin(RuntimeRecord.class, "machine_id", EquipInfo.class, "id"); addJoin(RuntimeRecord.class, "machine_id", EquipInfo.class, "id");
addOrderBy(RuntimeRecord.class,"create_time", OrderBy.DESC);
}}, RuntimeRecord.class); }}, RuntimeRecord.class);
return Return.success(list); Map<Long, List<RuntimeRecord>> map = list.stream().collect(Collectors.groupingBy(RuntimeRecord::getMachineId));
List<RuntimeRecord> listNew = new ArrayList<>();
if ("PAINTING".equals(workshopCode)){
for (Map.Entry<Long, List<RuntimeRecord>> entry : map.entrySet()){
RuntimeRecord record = entry.getValue().get(0);
record.setEquipCode(record.getAlias());
listNew.add(record);
}
return Return.success(listNew);
}
List<EquipInfo> equipInfos = equipmentService.findByShopCode(workshopCode);
for (EquipInfo info : equipInfos){
List<RuntimeRecord> runtimeRecords = map.get(info.getId());
if (CollecUtils.isEmpty(runtimeRecords)){
RuntimeRecord record = new RuntimeRecord();
record.setWorkshopCode(info.getWorkshopCode());
record.setEquipCode(info.getAlias());
record.setAlias(info.getEquipCode());
record.setCurrentRuntime(new BigDecimal(0));
listNew.add(record);
}else {
RuntimeRecord record = runtimeRecords.get(0);
record.setEquipCode(record.getAlias());
listNew.add(record);
}
}
return Return.success(listNew);
} }
} }
package net.vtstar.zhongtong.avi.sqlserver.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Table;
import java.util.Date;
/**
* @Author: xiadongwei
* @Date: 2019/10/29 9:31
*/
@ApiModel("焊装车间工单表")
@Data
@Table(name = "mes_hz_work_order")
public class MesHZWorkOrderInfo {
@ApiModelProperty(notes = "销售订单号")
@Column(name = "SaleOrderNo")
private String salesOrderNo;
@ApiModelProperty(notes = "主计划工单号")
@Column(name = "PlannedOrderNo")
private String masterWorkOrderNo;
@ApiModelProperty(notes = "车间计划工单号")
@Column(name = "WONo")
private String workOrderNo;
@ApiModelProperty(notes = "开始时间")
@Column(name = "RealStartTime")
private String realStartTime;
@ApiModelProperty(notes = "结束时间")
@Column(name = "RealEndTime")
private String realEndTime;
}
package net.vtstar.zhongtong.avi.sqlserver.job;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.WhereFilter;
import net.vtstar.utils.CollecUtils;
import net.vtstar.utils.DateUtils;
import net.vtstar.zhongtong.avi.sqlserver.domain.MesHZWorkOrderInfo;
import net.vtstar.zhongtong.avi.sqlserver.domain.MesWorkOrderInfo;
import net.vtstar.zhongtong.avi.sqlserver.mapper.MesHZWorkOrderMapper;
import net.vtstar.zhongtong.avi.utils.PingIpUtils;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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;
/**
* mes工单同步数据
* @Author: xiadongwei
* @Date: 2019/11/4 18:20
*/
@Slf4j
@Component
public class MesHZWorkOrderJob extends QuartzJobBean {
@Resource(name = "mesSqlServerJdbcTemplate")
private JdbcTemplate mesSqlServerJdbcTemplate;
@Autowired
private MesHZWorkOrderMapper mapper;
@Value("${zt.ip.mes}")
private String ipAddress;
@Value("${zt.ip.pingtimes}")
private int pingTimes;
@Value("${zt.ip.timeout}")
private int timeOut;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)){
log.error("ping: {}失败, 此次同步mes数据操作结束!", ipAddress);
return;
}
log.info("--------开始同步mes焊装数据--------");
Date startOfDay = DateUtils.getStartOfDay(0);
String dateString = DateUtils.parseDateToString(startOfDay, "yyyy-MM-dd HH:mm:ss");
StringBuilder sql = new StringBuilder();
sql.append("SELECT WONo, SaleOrderNo, PlannedOrderNo, RealStartTime, RealEndTime FROM APS_WeldingWorkOrder " +
"WHERE RealEndTime > '" + dateString + "'");
List<MesHZWorkOrderInfo> query = mesSqlServerJdbcTemplate.query(sql.toString(), (rs, rowNum) -> {
MesHZWorkOrderInfo map = new MesHZWorkOrderInfo();
map.setSalesOrderNo(rs.getString("SaleOrderNo"));
map.setMasterWorkOrderNo(rs.getString("PlannedOrderNo"));
map.setWorkOrderNo(rs.getString("WONo"));
map.setRealStartTime(rs.getString("RealStartTime"));
map.setRealEndTime(rs.getString("RealEndTime"));
return map;
});
log.error("mes查询到焊装数据: {} 条", query.size());
if (CollectionUtils.isEmpty(query)) {
//todo: ping通
log.error("连接mesSQL SERVER失败!");
return;
}
for (MesHZWorkOrderInfo info : query){
List<MesHZWorkOrderInfo> orderNo = mapper.findList(new WhereFilter() {{
addFilter("WONo", Operation.EQUAL, info.getWorkOrderNo());
}}, MesWorkOrderInfo.class);
if (CollecUtils.isEmpty(orderNo)){
mapper.insert(info);
}
}
log.info("--------同步mes焊装数据结束--------");
}
}
package net.vtstar.zhongtong.avi.sqlserver.mapper;
import net.vtstar.user.mybatis.BaseMapper;
import net.vtstar.zhongtong.avi.sqlserver.domain.MesHZWorkOrderInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Mapper
public interface MesHZWorkOrderMapper extends BaseMapper<MesHZWorkOrderInfo> {
}
spring.profiles.include=mybatis,quartz,swagger,security,mqtt,ztip,modbus spring.profiles.include=mybatis,quartz2,swagger,security,mqtt,ztip,modbus
# Mysql # Mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
...@@ -42,4 +42,9 @@ logging.level.root=info ...@@ -42,4 +42,9 @@ logging.level.root=info
logging.level.net.vtstar.scada.base.equipmgt.mapper = error logging.level.net.vtstar.scada.base.equipmgt.mapper = error
logging.level.net.vtstar.zhongtong.avi.equipment.mapper = error logging.level.net.vtstar.zhongtong.avi.equipment.mapper = error
logging.level.net.vtstar.protocol.modbus.tcp.netty.service = error logging.level.net.vtstar.protocol.modbus.tcp.netty.service = error
logging.level.net.vtstar.scada.base.equipmgt.service.EquipDataService = error logging.level.net.vtstar.zhongtong.avi.monitoring.job.AVIMonitorJob = error
logging.level.net.vtstar.zhongtong.avi.monitoring.job.RedisToCacheJob = error
logging.level.net.vtstar.scada.base.gather.job.GatherJob = error
logging.level.net.vtstar.protocol.modbus.tcp.netty.handler.ModbusClientHandler = error
logging.level.net.vtstar.protocol.modbus.tcp.netty.handler.ModbusRequestEncoder = error
logging.level.net.vtstar.scada.base.global.service.ModbusService = error
...@@ -15,7 +15,7 @@ spring.quartz.properties.org.quartz.jobStore.useProperties=false ...@@ -15,7 +15,7 @@ spring.quartz.properties.org.quartz.jobStore.useProperties=false
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.org.quartz.threadPool.threadCount=40 spring.quartz.properties.org.quartz.threadPool.threadCount=50
spring.quartz.properties.org.quartz.threadPool.threadPriority=5 spring.quartz.properties.org.quartz.threadPool.threadPriority=5
spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=false spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=false
...@@ -32,279 +32,299 @@ quartz.job.taskInfos[1].jobGroup=CleanStatusDataJob ...@@ -32,279 +32,299 @@ quartz.job.taskInfos[1].jobGroup=CleanStatusDataJob
quartz.job.taskInfos[1].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job quartz.job.taskInfos[1].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job
#quartz.job.taskInfos[1].cronExpression=0 0 0 * * ? #quartz.job.taskInfos[1].cronExpression=0 0 0 * * ?
quartz.job.taskInfos[1].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[1].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[1].start=true quartz.job.taskInfos[1].start=false
quartz.job.taskInfos[2].jobName=net.vtstar.zhongtong.avi.equipment.job.StatisticsTimeJob quartz.job.taskInfos[2].jobName=net.vtstar.zhongtong.avi.equipment.job.StatisticsTimeJob
quartz.job.taskInfos[2].jobGroup=StatisticsTimeJob quartz.job.taskInfos[2].jobGroup=StatisticsTimeJob
quartz.job.taskInfos[2].jobDescription=\u8ba1\u7b97\u8fd0\u884c\u65f6\u95f4Job quartz.job.taskInfos[2].jobDescription=\u8ba1\u7b97\u8fd0\u884c\u65f6\u95f4Job
quartz.job.taskInfos[2].cronExpression=0 0/15 * * * ? quartz.job.taskInfos[2].cronExpression=0 0/15 * * * ?
quartz.job.taskInfos[2].start=true quartz.job.taskInfos[2].start=false
#制件车间(PARTS) #制件车间(PARTS)
#喷粉线 #喷粉线
quartz.job.taskInfos[8].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.DustingLineMachineJob quartz.job.taskInfos[3].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.DustingLineMachineJob
quartz.job.taskInfos[8].jobGroup=DustingLineMachineJob quartz.job.taskInfos[3].jobGroup=DustingLineMachineJob
quartz.job.taskInfos[8].jobDescription=\u55b7\u7c89\u7ebfJob quartz.job.taskInfos[3].jobDescription=\u55b7\u7c89\u7ebfJob
quartz.job.taskInfos[8].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[3].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[8].start=true quartz.job.taskInfos[3].start=false
#前处理 #前处理
quartz.job.taskInfos[9].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.PretreamentMachineJob quartz.job.taskInfos[4].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.PretreamentMachineJob
quartz.job.taskInfos[9].jobGroup=PretreamentMachineJob quartz.job.taskInfos[4].jobGroup=PretreamentMachineJob
quartz.job.taskInfos[9].jobDescription=\u55b7\u7c89\u7ebfJob quartz.job.taskInfos[4].jobDescription=\u55b7\u7c89\u7ebfJob
quartz.job.taskInfos[9].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[4].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[9].start=true quartz.job.taskInfos[4].start=false
#型钢下料 #型钢下料
quartz.job.taskInfos[10].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.SteelCncCuttingMachineJob quartz.job.taskInfos[5].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.SteelCncCuttingMachineJob
quartz.job.taskInfos[10].jobGroup=SteelCncCuttingMachineJob quartz.job.taskInfos[5].jobGroup=SteelCncCuttingMachineJob
quartz.job.taskInfos[10].jobDescription=\u578b\u94a2\u4e0b\u6599Job quartz.job.taskInfos[5].jobDescription=\u578b\u94a2\u4e0b\u6599Job
quartz.job.taskInfos[10].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[5].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[10].start=true quartz.job.taskInfos[5].start=false
#焊接机器人 #焊接机器人
quartz.job.taskInfos[21].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.WeldingRobotMachineJob quartz.job.taskInfos[6].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.WeldingRobotMachineJob
quartz.job.taskInfos[21].jobGroup=WeldingRobotMachineJob quartz.job.taskInfos[6].jobGroup=WeldingRobotMachineJob
quartz.job.taskInfos[21].jobDescription=\u710a\u63a5\u673a\u5668\u4ebaJob quartz.job.taskInfos[6].jobDescription=\u710a\u63a5\u673a\u5668\u4ebaJob
quartz.job.taskInfos[21].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[6].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[21].start=true quartz.job.taskInfos[6].start=false
#焊装车间(WELDING) #焊装车间(WELDING)
#焊装板链 #焊装板链
quartz.job.taskInfos[11].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.PlateChainMachineJob quartz.job.taskInfos[7].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.PlateChainMachineJob
quartz.job.taskInfos[11].jobGroup=PlateChainMachineJob quartz.job.taskInfos[7].jobGroup=PlateChainMachineJob
quartz.job.taskInfos[11].jobDescription=\u710a\u88c5\u677f\u94feJob quartz.job.taskInfos[7].jobDescription=\u710a\u88c5\u677f\u94feJob
quartz.job.taskInfos[11].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[7].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[11].start=true quartz.job.taskInfos[7].start=false
#板链平均运行时间统计 #板链平均运行时间统计
quartz.job.taskInfos[34].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.WeldingPlateChainTimeMachineJob quartz.job.taskInfos[8].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.WeldingPlateChainTimeMachineJob
quartz.job.taskInfos[34].jobGroup=WeldingPlateChainTimeMachineJob quartz.job.taskInfos[8].jobGroup=WeldingPlateChainTimeMachineJob
quartz.job.taskInfos[34].jobDescription=\u677f\u94feJob quartz.job.taskInfos[8].jobDescription=\u677f\u94feJob
quartz.job.taskInfos[34].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[8].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[34].start=true quartz.job.taskInfos[8].start=false
#PLC数控合装胎(串口) #PLC数控合装胎(串口)
quartz.job.taskInfos[12].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.PlcControlTireMachine1Job quartz.job.taskInfos[9].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.PlcControlTireMachine1Job
quartz.job.taskInfos[12].jobGroup=PlcControlTireMachine1Job quartz.job.taskInfos[9].jobGroup=PlcControlTireMachine1Job
quartz.job.taskInfos[12].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job quartz.job.taskInfos[9].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job
quartz.job.taskInfos[12].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[9].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[12].start=true quartz.job.taskInfos[9].start=false
#PLC数控合装胎(网口) #PLC数控合装胎(网口)
quartz.job.taskInfos[13].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.PlcControlTireMachine2Job quartz.job.taskInfos[10].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.PlcControlTireMachine2Job
quartz.job.taskInfos[13].jobGroup=PlcControlTireMachine2Job quartz.job.taskInfos[10].jobGroup=PlcControlTireMachine2Job
quartz.job.taskInfos[13].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job quartz.job.taskInfos[10].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job
quartz.job.taskInfos[13].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[10].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[13].start=true quartz.job.taskInfos[10].start=false
#车顶自动点焊 #车顶自动点焊
quartz.job.taskInfos[36].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.AutomaticSpotWeldingMachineJob quartz.job.taskInfos[11].jobName=net.vtstar.zhongtong.avi.gateway.welding.job.AutomaticSpotWeldingMachineJob
quartz.job.taskInfos[36].jobGroup=AutomaticSpotWeldingMachineJob quartz.job.taskInfos[11].jobGroup=AutomaticSpotWeldingMachineJob
quartz.job.taskInfos[36].jobDescription=\u8f66\u9876\u81ea\u52a8\u70b9\u710aJob quartz.job.taskInfos[11].jobDescription=\u8f66\u9876\u81ea\u52a8\u70b9\u710aJob
quartz.job.taskInfos[36].cronExpression=0/1 * * * * ? quartz.job.taskInfos[11].cronExpression=0/1 * * * * ?
quartz.job.taskInfos[36].start=true quartz.job.taskInfos[11].start=false
#涂装车间(PAINTING) #涂装车间(PAINTING)
#喷涂机器人 #喷涂机器人
quartz.job.taskInfos[14].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.PaintingRobotMachineJob quartz.job.taskInfos[12].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.PaintingRobotRecordMachineJob
quartz.job.taskInfos[14].jobGroup=PaintingRobotMachineJob quartz.job.taskInfos[12].jobGroup=PaintingRobotRecordMachineJob
quartz.job.taskInfos[14].jobDescription=\u55b7\u6d82\u673a\u5668\u4ebaJob quartz.job.taskInfos[12].jobDescription=\u55b7\u6d82\u673a\u5668\u4ebaJob
quartz.job.taskInfos[14].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[12].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[14].start=true quartz.job.taskInfos[12].start=false
#喷涂喷涂室 #喷涂喷涂室
quartz.job.taskInfos[23].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.SprayBoothStateMachineJob quartz.job.taskInfos[13].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.SprayBoothStateMachineJob
quartz.job.taskInfos[23].jobGroup=SprayBoothStateMachineJob quartz.job.taskInfos[13].jobGroup=SprayBoothStateMachineJob
quartz.job.taskInfos[23].jobDescription=\u6d82\u88c5\u55b7\u6d82\u5ba4Job quartz.job.taskInfos[13].jobDescription=\u6d82\u88c5\u55b7\u6d82\u5ba4Job
quartz.job.taskInfos[23].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[13].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[23].start=true quartz.job.taskInfos[13].start=false
#烘干室 #烘干室
quartz.job.taskInfos[28].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.DryingRoomTempMachineJob quartz.job.taskInfos[14].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.DryingRoomTempMachineJob
quartz.job.taskInfos[28].jobGroup=DryingRoomTempMachineJob quartz.job.taskInfos[14].jobGroup=DryingRoomTempMachineJob
quartz.job.taskInfos[28].jobDescription=\u70d8\u5e72\u5ba4Job quartz.job.taskInfos[14].jobDescription=\u70d8\u5e72\u5ba4Job
quartz.job.taskInfos[28].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[14].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[28].start=true quartz.job.taskInfos[14].start=false
#打磨室 #打磨室
quartz.job.taskInfos[38].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.PolishingRoomStateJob quartz.job.taskInfos[15].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.PolishingRoomStateJob
quartz.job.taskInfos[38].jobGroup=PolishingRoomStateJob quartz.job.taskInfos[15].jobGroup=PolishingRoomStateJob
quartz.job.taskInfos[38].jobDescription=\u6253\u78e8\u5ba4Job quartz.job.taskInfos[15].jobDescription=\u6253\u78e8\u5ba4Job
quartz.job.taskInfos[38].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[15].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[38].start=true quartz.job.taskInfos[15].start=false
#VOC处理平台 #VOC处理平台
quartz.job.taskInfos[27].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.VocMachineJob quartz.job.taskInfos[16].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.VocMachineJob
quartz.job.taskInfos[27].jobGroup=VocMachineJob quartz.job.taskInfos[16].jobGroup=VocMachineJob
quartz.job.taskInfos[27].jobDescription=\u0056\u004f\u0043\u5904\u7406\u5e73\u53f0Job quartz.job.taskInfos[16].jobDescription=\u0056\u004f\u0043\u5904\u7406\u5e73\u53f0Job
quartz.job.taskInfos[27].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[16].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[27].start=true quartz.job.taskInfos[16].start=false
#旋转辊床 #旋转辊床
quartz.job.taskInfos[32].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.RotaryRollerBedMachineJob quartz.job.taskInfos[17].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.RotaryRollerBedMachineJob
quartz.job.taskInfos[32].jobGroup=RotaryRollerBedMachineJob quartz.job.taskInfos[17].jobGroup=RotaryRollerBedMachineJob
quartz.job.taskInfos[32].jobDescription=\u65cb\u8f6c\u8f8a\u5e8aJob quartz.job.taskInfos[17].jobDescription=\u65cb\u8f6c\u8f8a\u5e8aJob
quartz.job.taskInfos[32].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[17].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[32].start=true quartz.job.taskInfos[17].start=false
#前处理温度 #前处理温度
quartz.job.taskInfos[30].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.PaintPretreatmentMachineJob quartz.job.taskInfos[18].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.PaintPretreatmentMachineJob
quartz.job.taskInfos[30].jobGroup=PaintPretreatmentMachineJob quartz.job.taskInfos[18].jobGroup=PaintPretreatmentMachineJob
quartz.job.taskInfos[30].jobDescription=\u524d\u5904\u7406\u6e29\u5ea6Job quartz.job.taskInfos[18].jobDescription=\u524d\u5904\u7406\u6e29\u5ea6Job
quartz.job.taskInfos[30].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[18].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[30].start=true quartz.job.taskInfos[18].start=false
#电泳整流 #电泳整流
quartz.job.taskInfos[31].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.ElectrophoresisRectificationMachineJob quartz.job.taskInfos[19].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.ElectrophoresisRectificationMachineJob
quartz.job.taskInfos[31].jobGroup=ElectrophoresisRectificationMachineJob quartz.job.taskInfos[19].jobGroup=ElectrophoresisRectificationMachineJob
quartz.job.taskInfos[31].jobDescription=\u7535\u6cf3\u6574\u6d41Job quartz.job.taskInfos[19].jobDescription=\u7535\u6cf3\u6574\u6d41Job
quartz.job.taskInfos[31].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[19].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[31].start=true quartz.job.taskInfos[19].start=false
#电泳 #电泳
quartz.job.taskInfos[39].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.ElectrophoresisMachineJob quartz.job.taskInfos[20].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.ElectrophoresisMachineJob
quartz.job.taskInfos[39].jobGroup=ElectrophoresisMachineJob quartz.job.taskInfos[20].jobGroup=ElectrophoresisMachineJob
quartz.job.taskInfos[39].jobDescription=\u7535\u6cf3\u6574\u6d41Job quartz.job.taskInfos[20].jobDescription=\u7535\u6cf3\u6574\u6d41Job
quartz.job.taskInfos[39].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[20].cronExpression=0 0/10 * * * ?
quartz.job.taskInfos[39].start=true quartz.job.taskInfos[20].start=false
#底盘车间(CHASSIS) #底盘车间(CHASSIS)
#底盘智能扭力扳手 #底盘智能扭力扳手
quartz.job.taskInfos[15].jobName=net.vtstar.zhongtong.avi.gateway.chassis.job.ChassisTorqueMachineJob quartz.job.taskInfos[21].jobName=net.vtstar.zhongtong.avi.gateway.chassis.job.ChassisTorqueMachineJob
quartz.job.taskInfos[15].jobGroup=ChassisTorqueMachineJob quartz.job.taskInfos[21].jobGroup=ChassisTorqueMachineJob
quartz.job.taskInfos[15].jobDescription=\u667a\u80fd\u626d\u529b\u6273\u624bJob quartz.job.taskInfos[21].jobDescription=\u667a\u80fd\u626d\u529b\u6273\u624bJob
quartz.job.taskInfos[15].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[21].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[15].start=true quartz.job.taskInfos[21].start=false
#四轮定位同步 #四轮定位同步
quartz.job.taskInfos[7].jobName=net.vtstar.zhongtong.avi.access.job.WheelAlignmentJob quartz.job.taskInfos[22].jobName=net.vtstar.zhongtong.avi.access.job.WheelAlignmentJob
quartz.job.taskInfos[7].jobGroup=WheelAlignmentJob quartz.job.taskInfos[22].jobGroup=WheelAlignmentJob
quartz.job.taskInfos[7].jobDescription=\u56db\u8f6e\u5b9a\u4f4dJob quartz.job.taskInfos[22].jobDescription=\u56db\u8f6e\u5b9a\u4f4dJob
quartz.job.taskInfos[7].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[22].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[7].start=false quartz.job.taskInfos[22].start=false
#总装车间(ASSEMBLY) #总装车间(ASSEMBLY)
#板链测试量采集 #板链测试量采集
quartz.job.taskInfos[22].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.PlateChainStateMachineJob quartz.job.taskInfos[23].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.PlateChainStateMachineJob
quartz.job.taskInfos[22].jobGroup=PlateChainStateMachineJob quartz.job.taskInfos[23].jobGroup=PlateChainStateMachineJob
quartz.job.taskInfos[22].jobDescription=\u677f\u94feJob quartz.job.taskInfos[23].jobDescription=\u677f\u94feJob
quartz.job.taskInfos[22].cronExpression=0/15 * * * * ? quartz.job.taskInfos[23].cronExpression=0/15 * * * * ?
quartz.job.taskInfos[22].start=true quartz.job.taskInfos[23].start=false
#板链平均运行时间统计 #板链平均运行时间统计
quartz.job.taskInfos[33].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.PlateChainTimeMachineJob quartz.job.taskInfos[24].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.PlateChainTimeMachineJob
quartz.job.taskInfos[33].jobGroup=PlateChainTimeMachineJob quartz.job.taskInfos[24].jobGroup=PlateChainTimeMachineJob
quartz.job.taskInfos[33].jobDescription=\u677f\u94feJob quartz.job.taskInfos[24].jobDescription=\u677f\u94feJob
quartz.job.taskInfos[33].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[24].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[33].start=true quartz.job.taskInfos[24].start=false
#离合油加注机 #离合油加注机
quartz.job.taskInfos[16].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.CentralizedFillingClutchMachineJob quartz.job.taskInfos[25].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.CentralizedFillingClutchMachineJob
quartz.job.taskInfos[16].jobGroup=CentralizedFillingClutchMachineJob quartz.job.taskInfos[25].jobGroup=CentralizedFillingClutchMachineJob
quartz.job.taskInfos[16].jobDescription=\u79bb\u5408\u6cb9\u52a0\u6ce8\u673aJob quartz.job.taskInfos[25].jobDescription=\u79bb\u5408\u6cb9\u52a0\u6ce8\u673aJob
quartz.job.taskInfos[16].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[25].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[16].start=true quartz.job.taskInfos[25].start=false
#冷媒加注机 #冷媒加注机
quartz.job.taskInfos[17].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.FocusAddingRefrigerantMachineJob quartz.job.taskInfos[26].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.FocusAddingRefrigerantMachineJob
quartz.job.taskInfos[17].jobGroup=FocusAddingRefrigerantMachineJob quartz.job.taskInfos[26].jobGroup=FocusAddingRefrigerantMachineJob
quartz.job.taskInfos[17].jobDescription=\u51b7\u5a92\u52a0\u6ce8\u673aJob quartz.job.taskInfos[26].jobDescription=\u51b7\u5a92\u52a0\u6ce8\u673aJob
quartz.job.taskInfos[17].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[26].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[17].start=true quartz.job.taskInfos[26].start=false
#助力油加注 #助力油加注
quartz.job.taskInfos[18].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.FocusBoosterOilMachineJob quartz.job.taskInfos[27].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.FocusBoosterOilMachineJob
quartz.job.taskInfos[18].jobGroup=FocusBoosterOilMachineJob quartz.job.taskInfos[27].jobGroup=FocusBoosterOilMachineJob
quartz.job.taskInfos[18].jobDescription=\u52a9\u529b\u6cb9\u52a0\u6ce8\u673aJob quartz.job.taskInfos[27].jobDescription=\u52a9\u529b\u6cb9\u52a0\u6ce8\u673aJob
quartz.job.taskInfos[18].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[27].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[18].start=true quartz.job.taskInfos[27].start=false
#地板革热熔涂胶 #地板革热熔涂胶
quartz.job.taskInfos[19].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.FloorLeatherHotMachineJob quartz.job.taskInfos[28].jobName=net.vtstar.zhongtong.avi.gateway.assembly.job.FloorLeatherHotMachineJob
quartz.job.taskInfos[19].jobGroup=FloorLeatherHotMachineJob quartz.job.taskInfos[28].jobGroup=FloorLeatherHotMachineJob
quartz.job.taskInfos[19].jobDescription=\u5730\u677f\u9694\u70ed\u7194\u8bbe\u5907Job quartz.job.taskInfos[28].jobDescription=\u5730\u677f\u9694\u70ed\u7194\u8bbe\u5907Job
quartz.job.taskInfos[19].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[28].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[19].start=true quartz.job.taskInfos[28].start=false
#智能扭力扳手 #智能扭力扳手
quartz.job.taskInfos[5].jobName=net.vtstar.zhongtong.avi.sqlserver.job.AssemblyTorqueWrenchJob quartz.job.taskInfos[29].jobName=net.vtstar.zhongtong.avi.sqlserver.job.AssemblyTorqueWrenchJob
quartz.job.taskInfos[5].jobGroup=AssemblyTorqueWrenchJob quartz.job.taskInfos[29].jobGroup=AssemblyTorqueWrenchJob
quartz.job.taskInfos[5].jobDescription=\u667a\u80fd\u626d\u529b\u6273\u624bJob quartz.job.taskInfos[29].jobDescription=\u667a\u80fd\u626d\u529b\u6273\u624bJob
quartz.job.taskInfos[5].cronExpression=0 0/15 * * * ? quartz.job.taskInfos[29].cronExpression=0 0/15 * * * ?
quartz.job.taskInfos[5].start=false quartz.job.taskInfos[29].start=false
#新能源检测点定位 #新能源检测点定位
quartz.job.taskInfos[6].jobName=net.vtstar.zhongtong.avi.access.job.AssemblyNewEnergyJob quartz.job.taskInfos[30].jobName=net.vtstar.zhongtong.avi.access.job.AssemblyNewEnergyJob
quartz.job.taskInfos[6].jobGroup=AssemblyNewEnergyJob quartz.job.taskInfos[30].jobGroup=AssemblyNewEnergyJob
quartz.job.taskInfos[6].jobDescription=\u65b0\u80fd\u6e90\u68c0\u6d4b\u70b9Job quartz.job.taskInfos[30].jobDescription=\u65b0\u80fd\u6e90\u68c0\u6d4b\u70b9Job
quartz.job.taskInfos[6].cronExpression=0/30 * * * * ? quartz.job.taskInfos[30].cronExpression=0/30 * * * * ?
quartz.job.taskInfos[6].start=false quartz.job.taskInfos[30].start=false
#试交车间 #试交车间
#检测线 #检测线
quartz.job.taskInfos[3].jobName=net.vtstar.zhongtong.avi.sqlserver.job.TestLineResultJob quartz.job.taskInfos[31].jobName=net.vtstar.zhongtong.avi.sqlserver.job.TestLineResultJob
quartz.job.taskInfos[3].jobGroup=TestLineResultJob quartz.job.taskInfos[31].jobGroup=TestLineResultJob
quartz.job.taskInfos[3].jobDescription=\u68c0\u6d4b\u7ebfJob quartz.job.taskInfos[31].jobDescription=\u68c0\u6d4b\u7ebfJob
quartz.job.taskInfos[3].cronExpression=0 0/15 * * * ? quartz.job.taskInfos[31].cronExpression=0 0/15 * * * ?
quartz.job.taskInfos[3].start=true quartz.job.taskInfos[31].start=false
#限速值 #限速值
quartz.job.taskInfos[4].jobName=net.vtstar.zhongtong.avi.sqlserver.job.TestSpeedResultJob quartz.job.taskInfos[32].jobName=net.vtstar.zhongtong.avi.sqlserver.job.TestSpeedResultJob
quartz.job.taskInfos[4].jobGroup=TestSpeedResultJob quartz.job.taskInfos[32].jobGroup=TestSpeedResultJob
quartz.job.taskInfos[4].jobDescription=\u9650\u901f\u503cJob quartz.job.taskInfos[32].jobDescription=\u9650\u901f\u503cJob
quartz.job.taskInfos[4].cronExpression=0 0/5 * * * ? quartz.job.taskInfos[32].cronExpression=0 0/5 * * * ?
quartz.job.taskInfos[4].start=true quartz.job.taskInfos[32].start=false
#错误帧 #错误帧
quartz.job.taskInfos[25].jobName=net.vtstar.zhongtong.avi.gateway.trial.job.ErrorFrameJob quartz.job.taskInfos[33].jobName=net.vtstar.zhongtong.avi.gateway.trial.job.ErrorFrameJob
quartz.job.taskInfos[25].jobGroup=ErrorFrameJob quartz.job.taskInfos[33].jobGroup=ErrorFrameJob
quartz.job.taskInfos[25].jobDescription=\u9519\u8bef\u5e27Job quartz.job.taskInfos[33].jobDescription=\u9519\u8bef\u5e27Job
quartz.job.taskInfos[25].cronExpression=0/10 * * * * ? quartz.job.taskInfos[33].cronExpression=0/10 * * * * ?
quartz.job.taskInfos[25].start=false quartz.job.taskInfos[33].start=false
#充电桩 #充电桩
quartz.job.taskInfos[20].jobName=net.vtstar.zhongtong.avi.gateway.trial.job.ChargingPileMachineJob quartz.job.taskInfos[34].jobName=net.vtstar.zhongtong.avi.gateway.trial.job.ChargingPileMachineJob
quartz.job.taskInfos[20].jobGroup=ChargingPileMachineJob quartz.job.taskInfos[34].jobGroup=ChargingPileMachineJob
quartz.job.taskInfos[20].jobDescription=\u5145\u7535\u6869Job quartz.job.taskInfos[34].jobDescription=\u5145\u7535\u6869Job
quartz.job.taskInfos[20].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[34].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[20].start=true quartz.job.taskInfos[34].start=false
#加氢站 #加氢站
quartz.job.taskInfos[35].jobName=net.vtstar.zhongtong.avi.gateway.trial.job.HydrogenStationVocMachineJob quartz.job.taskInfos[35].jobName=net.vtstar.zhongtong.avi.gateway.trial.job.HydrogenStationVocMachineJob
quartz.job.taskInfos[35].jobGroup=HydrogenStationVocMachineJob quartz.job.taskInfos[35].jobGroup=HydrogenStationVocMachineJob
quartz.job.taskInfos[35].jobDescription=\u52a0\u6c22\u7ad9Job quartz.job.taskInfos[35].jobDescription=\u52a0\u6c22\u7ad9Job
quartz.job.taskInfos[35].cronExpression=0 0/1 * * * ? quartz.job.taskInfos[35].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[35].start=true quartz.job.taskInfos[35].start=false
#AVI plc 采集 #AVI plc 采集
quartz.job.taskInfos[24].jobName=net.vtstar.zhongtong.avi.monitoring.job.AVIMonitorJob quartz.job.taskInfos[36].jobName=net.vtstar.zhongtong.avi.monitoring.job.AVIMonitorJob1
quartz.job.taskInfos[24].jobGroup=AVIMonitorJob quartz.job.taskInfos[36].jobGroup=AVIMonitorJob1
quartz.job.taskInfos[24].jobDescription=\u76d1\u63a7\u0041\u0056\u0049Job quartz.job.taskInfos[36].jobDescription=\u76d1\u63a7\u0041\u0056\u0049Job
quartz.job.taskInfos[24].cronExpression=0/10 * * * * ? quartz.job.taskInfos[36].cronExpression=0/3 * * * * ?
quartz.job.taskInfos[24].start=true quartz.job.taskInfos[36].start=false
#avi 刷新报警信号 #avi 刷新报警信号
quartz.job.taskInfos[37].jobName=net.vtstar.zhongtong.avi.monitoring.job.AviWarningJob quartz.job.taskInfos[37].jobName=net.vtstar.zhongtong.avi.monitoring.job.AviWarningJob
quartz.job.taskInfos[37].jobGroup=AviWarningJob quartz.job.taskInfos[37].jobGroup=AviWarningJob
quartz.job.taskInfos[37].jobDescription=\u62a5\u8b66\u4fe1\u53f7Job quartz.job.taskInfos[37].jobDescription=\u62a5\u8b66\u4fe1\u53f7Job
quartz.job.taskInfos[37].cronExpression=0/30 * * * * ? quartz.job.taskInfos[37].cronExpression=0/30 * * * * ?
quartz.job.taskInfos[37].start=true quartz.job.taskInfos[37].start=false
#mes 工单同步 #mes 工单同步
quartz.job.taskInfos[26].jobName=net.vtstar.zhongtong.avi.sqlserver.job.MesWorkOrderJob quartz.job.taskInfos[38].jobName=net.vtstar.zhongtong.avi.sqlserver.job.MesWorkOrderJob
quartz.job.taskInfos[26].jobGroup=MesWorkOrderJob quartz.job.taskInfos[38].jobGroup=MesWorkOrderJob
quartz.job.taskInfos[26].jobDescription=\u004d\u0045\u0053\u5de5\u5355\u540c\u6b65Job quartz.job.taskInfos[38].jobDescription=\u004d\u0045\u0053\u5de5\u5355\u540c\u6b65Job
quartz.job.taskInfos[26].cronExpression=0 0/30 * * * ? quartz.job.taskInfos[38].cronExpression=0 0/30 * * * ?
quartz.job.taskInfos[26].start=true quartz.job.taskInfos[38].start=false
#mavi 刷新工位信息 #mavi 刷新工位信息
quartz.job.taskInfos[29].jobName=net.vtstar.zhongtong.avi.monitoring.job.RedisToCacheJob quartz.job.taskInfos[39].jobName=net.vtstar.zhongtong.avi.monitoring.job.RedisToCacheJob
quartz.job.taskInfos[29].jobGroup=RedisToCacheJob quartz.job.taskInfos[39].jobGroup=RedisToCacheJob
quartz.job.taskInfos[29].jobDescription=\u0041\u0056\u0049\u5de5\u4f4d\u4fe1\u606f\u540c\u6b65Job quartz.job.taskInfos[39].jobDescription=\u0041\u0056\u0049\u5de5\u4f4d\u4fe1\u606f\u540c\u6b65Job
quartz.job.taskInfos[29].cronExpression=0/10 * * * * ? quartz.job.taskInfos[39].cronExpression=0/10 * * * * ?
quartz.job.taskInfos[29].start=true quartz.job.taskInfos[39].start=true
#旋转辊床
quartz.job.taskInfos[40].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.RotaryRollerBedRestartJob
quartz.job.taskInfos[40].jobGroup=RotaryRollerBedRestartJob
quartz.job.taskInfos[40].jobDescription=\u65cb\u8f6c\u8f8a\u5e8aJob
quartz.job.taskInfos[40].cronExpression=0 0 0 * * ?
quartz.job.taskInfos[40].start=false
#mes 焊装工单同步
quartz.job.taskInfos[41].jobName=net.vtstar.zhongtong.avi.sqlserver.job.MesHZWorkOrderJob
quartz.job.taskInfos[41].jobGroup=MesHZWorkOrderJob
quartz.job.taskInfos[41].jobDescription=\u004d\u0045\u0053\u5de5\u5355\u540c\u6b65Job
quartz.job.taskInfos[41].cronExpression=0 0/3 * * * ?
quartz.job.taskInfos[41].start=false
#空中行车
quartz.job.taskInfos[42].jobName=net.vtstar.zhongtong.avi.monitoring.job.AVIElectrophoresisJob
quartz.job.taskInfos[42].jobGroup=AVIElectrophoresisJob
quartz.job.taskInfos[42].jobDescription=\u7a7a\u4e2d\u884c\u8f66Job
quartz.job.taskInfos[42].cronExpression=0/10 * * * * ?
quartz.job.taskInfos[42].start=false
#quartz.job.taskInfos[8].jobName=net.vtstar.scada.base.equipmgt.job.CleanEquipStatusJob #quartz.job.taskInfos[8].jobName=net.vtstar.scada.base.equipmgt.job.CleanEquipStatusJob
##quartz.job.taskInfos[8].jobGroup=CleanEquipStatusJob ##quartz.job.taskInfos[8].jobGroup=CleanEquipStatusJob
......
...@@ -36,7 +36,15 @@ spring.mes.sqlserver.username=wanteng ...@@ -36,7 +36,15 @@ spring.mes.sqlserver.username=wanteng
spring.mes.sqlserver.password=wanteng@2019 spring.mes.sqlserver.password=wanteng@2019
server.port=8082 server.port=8082
mqtt.server-uri=tcp://localhost:1883 mqtt.server-uri=tcp://10.1.25.223:1883
logging.level.root=info logging.level.root=info
logging.level.net.vtstar=debug #logging.level.net.vtstar=info
logging.level.net.vtstar.scada.base.equipmgt.mapper = error
logging.level.net.vtstar.zhongtong.avi.equipment.mapper = error
logging.level.net.vtstar.protocol.modbus.tcp.netty.service = error
logging.level.net.vtstar.zhongtong.avi.monitoring.job.AVIMonitorJob = error
logging.level.net.vtstar.zhongtong.avi.monitoring.job.RedisToCacheJob = error
logging.level.net.vtstar.scada.base.gather.job.GatherJob = error
logging.level.net.vtstar.protocol.modbus.tcp.netty.handler.ModbusClientHandler = error
logging.level.net.vtstar.protocol.modbus.tcp.netty.handler.ModbusRequestEncoder = error
\ No newline at end of file
...@@ -16,11 +16,11 @@ zt.ip.assemblynewenergy3=10.1.25.130 ...@@ -16,11 +16,11 @@ zt.ip.assemblynewenergy3=10.1.25.130
zt.ip.assemblynewenergy4=10.1.25.131 zt.ip.assemblynewenergy4=10.1.25.131
#底盘车间--四轮定位A线 #底盘车间--四轮定位A线
zt.ip.wheelalignment1=10.1.5.25 zt.ip.wheelalignment1=10.1.25.87
#底盘车间--四轮定位B线 #底盘车间--四轮定位B线
zt.ip.wheelalignment2=10.1.5.87 zt.ip.wheelalignment2=10.1.25.86
#底盘车间--四轮定位C线 #底盘车间--四轮定位C线
zt.ip.wheelalignment3=10.1.5.33 zt.ip.wheelalignment3=10.1.25.88
#试交车间 #试交车间
#检测线 #检测线
......
<?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.sqlserver.mapper.MesHZWorkOrderMapper">
</mapper>
\ No newline at end of file
<?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.gateway.painting.mapper.PaintingRobotRecordMapper">
</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