Commit 492c84b8 authored by 夏东伟's avatar 夏东伟

大族激光设备采集

parent b1c89e87
......@@ -83,7 +83,6 @@ public class AssemblyNewEnergyJob extends QuartzJobBean {
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
log.error("ping: {}失败, 此次同步总装新能源检测点数据操作结束!", ipAddress);
realTimeService.saveEquip("总装车间", equipCode, "新能源检测点", "关机");
continue;
}
......
......@@ -85,7 +85,6 @@ public class WheelAlignmentJob extends QuartzJobBean {
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
log.error("ping: {}失败, 此次同步底盘四轮定位数据操作结束!", ipAddress);
realTimeService.saveEquip("底盘车间", equipCode, equipName, "关机");
continue;
}
......
......@@ -50,8 +50,12 @@ public class EquipmentController {
@ApiOperation(value = "程序传输")
@PostMapping("/program/transfer")
private Return programTransfer(@RequestBody ProgramTransferVO transferVO){
equipmentService.putFile(transferVO);
return Return.success();
if (equipmentService.putFile(transferVO)){
return Return.success();
}else {
return Return.failed("下发文件失败!");
}
}
@ApiOperation(value = "报表导出")
......
......@@ -66,4 +66,7 @@ public class EquipInfo {
@Column(name = "equip_code")
private String equipName;
@Column(name = "remarks")
private String remarks;
}
......@@ -117,6 +117,9 @@ public class CleanStatusDataJob extends QuartzJobBean {
if ("PLC".equals(info.getEquipType())){
continue;
}
if (null != info.getRemarks()){
return;
}
EquipmentData data = (EquipmentData) valueOperations.get(EquipDataUtil.getLastStatusKey(info.getAlias()));
if (null == data || null == data.getEquipStatus()){
realTimeService.saveEquip(info.getWorkshopName(), info.getEquipCode(), info.getAlias(), "关机");
......
......@@ -2,6 +2,7 @@ package net.vtstar.zhongtong.avi.equipment.service;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import jcifs.smb.NtlmPasswordAuthentication;
import net.vtstar.scada.base.equipmgt.service.EquipDataChannelService;
import net.vtstar.user.mybatis.provider.Operation;
import net.vtstar.user.mybatis.provider.WhereFilter;
......@@ -182,30 +183,76 @@ public class EquipmentService {
}
}
public void putFile(ProgramTransferVO transferVO) {
public boolean putFile(ProgramTransferVO transferVO) {
String ip = "";
String path = "";
NtlmPasswordAuthentication auth = null;
switch (transferVO.getEquipCode()) {
case "076103-19":
ip = "10.1.25.192";
ip = "10.1.4.120";
path = "smb://" + ip + " /数控下料/";
break;
case "076103-28":
ip = "10.1.25.114";
path = "smb://" + ip + " /数控下料/";
break;
case "076103-14":
ip = "10.1.4.107";
path = "smb://" + ip + " /数控下料/";
break;
case "076103-25":
ip = "10.1.4.129";
path = "smb://" + ip + " /数控下料/";
break;
//TODO: 网口不通
case "076103-13":
ip = "10.1.4.106";
ip = "10.1.4.108";
path = "smb://" + ip + " /数控下料/";
break;
case "076103-17":
ip = "10.1.4.120";
ip = "10.1.4.106";
path = "smb://" + ip + " /数控下料/";
break;
//三维激光切割机
case "076707-165":
ip = "10.1.25.175";
break;
//激光切管机
case "076707-174":
//NCPrg, PA8000
ip = "10.1.25.176";
path = "smb://" + ip + " /NCPrg/";
break;
//激光切管机
case "076707-166":
ip = "10.1.25.177";
break;
//平板激光切割机
case "076707-114":
//NCPrg, PA8000
ip = "10.1.25.178";
path = "smb://" + ip + " /NCPrg/";
break;
//平板激光切割机
case "076707-167":
ip = "10.1.25.179";
path = "smb://" + ip + " /NCPrg/";
break;
//平板激光切割机
case "076707-146":
ip = "10.1.25.180";
break;
//平板激光切割机
case "076707-178":
ip = "10.1.25.181";
break;
//平板激光切割机
case "076707-177":
ip = "10.1.25.182";
break;
}
// SmbFileUtil.smbPut("smb://10.1.4.107/数控下料/", transferVO.getFilePath());
SmbFileUtil.smbPut("smb://" + ip +" /数控下料/", transferVO.getFilePath());
return SmbFileUtil.smbPut(path, transferVO.getFilePath());
}
public List<EquipInfo> findByShopCode(String workshopCode) {
......
......@@ -17,7 +17,7 @@ import net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper;
import net.vtstar.zhongtong.avi.equipment.mapper.FaultRecordMapper;
import net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning;
import net.vtstar.zhongtong.avi.stamping.domain.LaserCutting3DMachine;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCutting3DMachine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......
......@@ -24,7 +24,7 @@ public class DustingLineMachine extends EquipmentData {
@ApiModelProperty(notes = "设备名称")
private String equipCode;
@Show(label = "链速")
@Show(label = "链速(Hz)")
@Column(name = "chain_speed")
@ApiModelProperty(notes = "链速")
private int chainSpeed;
......
......@@ -66,7 +66,6 @@ public class SteelCncCuttingMachineStateJob extends QuartzJobBean {
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
log.error("ping: {}失败, 读取焊接机器人数据操作结束!", ipAddress);
realTimeService.saveEquip("制件车间", equipCode, equipName, "关机");
continue;
}
......
......@@ -74,7 +74,6 @@ public class WeldingRobotMachineJob extends QuartzJobBean {
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
log.error("ping: {}失败, 读取焊接机器人数据操作结束!", ipAddress);
realTimeService.saveEquip("制件车间", equipCode, "焊接机器人", "关机");
continue;
}
......
package net.vtstar.zhongtong.avi.stamping.domain;
package net.vtstar.zhongtong.avi.gateway.stamping.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -16,9 +16,21 @@ import java.util.Date;
@Data
@Search(code = "FLAT_LASER_CUTTING")
@ApiModel(value = "平板激光切割机", description = "激光切割机监控数据表")
@Table(name = "eqp_data_laser_cutting")
@Table(name = "eqp_data_flat_laser_cutting")
public class FlatLaserCuttingMachine extends EquipmentData {
@Show(label = "设备编号")
@Column(name = "eqp_code")
@ApiModelProperty(notes = "设备编号")
@Search
private String equipCode;
@Show(label = "设备名称")
@Column(name = "eqp_name")
@ApiModelProperty(notes = "设备名称")
@Search
private String alias;
@Search
@Show(label = "切割速率",sortable = true)
@ApiModelProperty("切割速率")
......
package net.vtstar.zhongtong.avi.stamping.domain;
package net.vtstar.zhongtong.avi.gateway.stamping.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package net.vtstar.zhongtong.avi.stamping.domain;
package net.vtstar.zhongtong.avi.gateway.stamping.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -19,6 +19,19 @@ import java.util.Date;
@Table(name = "eqp_data_laser_cutting")
public class LaserCuttingMachine extends EquipmentData {
@Show(label = "设备编号")
@Column(name = "eqp_code")
@ApiModelProperty(notes = "设备编号")
@Search
private String equipCode;
@Show(label = "设备名称")
@Column(name = "eqp_name")
@ApiModelProperty(notes = "设备名称")
@Search
private String alias;
@Search
@Show(label = "切割速率",sortable = true)
@ApiModelProperty("切割速率")
......
package net.vtstar.zhongtong.avi.stamping.domain;
package net.vtstar.zhongtong.avi.gateway.stamping.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
package net.vtstar.zhongtong.avi.gateway.stamping.job;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.FlatLaserCuttingMachine;
import net.vtstar.zhongtong.avi.gateway.stamping.mapper.FlatLaserCuttingMapper;
import net.vtstar.zhongtong.avi.gateway.stamping.utils.ClientSocketUtil;
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.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 平板激光切割机数据采集JOB
*/
@Slf4j
@Component
public class FlatLaserCuttingMachineJob extends QuartzJobBean {
private String ipAddress1 = "10.1.25.178";
private String ipAddress2 = "10.1.25.179";
private String ipAddress3 = "10.1.25.180";
private String ipAddress4 = "10.1.25.181";
private String ipAddress5 = "10.1.25.182";
@Value("${zt.ip.pingtimes}")
private int pingTimes;
@Value("${zt.ip.timeout}")
private int timeOut;
@Autowired
private EquipStatusRealTimeService realTimeService;
@Autowired
private FlatLaserCuttingMapper mapper;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
List<String> ipAddressList = Arrays.asList(ipAddress1, ipAddress2, ipAddress3, ipAddress4, ipAddress5);
for (String ipAddress : ipAddressList) {
String equipCode = "";
String equipName = "";
String equipFactory = "";
switch (ipAddress) {
case "10.1.25.178":
equipCode = "076707-114";
equipName = "平板激光切割机";
equipFactory = "01跨西南";
break;
case "10.1.25.179":
equipCode = "076707-167";
equipName = "平板激光切割机";
equipFactory = "02跨西北";
break;
case "10.1.25.180":
equipCode = "076707-146";
equipName = "平板激光切割机";
equipFactory = "01跨西北";
break;
case "10.1.25.181":
equipCode = "076707-178";
equipName = "平板激光切割机";
equipFactory = "02跨西南";
break;
case "10.1.25.182":
equipCode = "076707-177";
equipName = "平板激光切割机";
equipFactory = "02西西南";
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
realTimeService.saveEquip("制件车间", equipCode, equipName, "关机");
continue;
}
realTimeService.saveEquip("制件车间", equipCode, equipName, "开机");
//速度
String cuttingSpeed = ClientSocketUtil.send(ipAddress, "P101");
//功率
String laserPower = ClientSocketUtil.send(ipAddress, "P102");
//气体压力
String gasPressure = ClientSocketUtil.send(ipAddress, "P107");
if ("0".equals(cuttingSpeed) && "0".equals(laserPower) && "0".equals(gasPressure)){
log.error("ip: {}能ping通, 但62944端口连接不上", ipAddress);
continue;
}
FlatLaserCuttingMachine machine = new FlatLaserCuttingMachine();
machine.setAlias(equipName);
machine.setEquipCode(equipCode);
machine.setCuttingSpeed(new BigDecimal(cuttingSpeed));
machine.setGasPressure(new BigDecimal(gasPressure));
machine.setLaserPower(new BigDecimal(laserPower));
machine.setCreateTime(new Date());
machine.setStatus("1");
machine.setEquipFactory(equipFactory);
mapper.insert(machine);
}
}
}
\ No newline at end of file
package net.vtstar.zhongtong.avi.gateway.stamping.job;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCutting3DMachine;
import net.vtstar.zhongtong.avi.gateway.stamping.mapper.LaserCutting3DMapper;
import net.vtstar.zhongtong.avi.gateway.stamping.utils.ClientSocketUtil;
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.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 3维激光切割机数据采集JOB
*/
@Slf4j
@Component
public class LaserCutting3DMachineJob extends QuartzJobBean {
private String ipAddress1 = "10.1.25.175";
@Value("${zt.ip.pingtimes}")
private int pingTimes;
@Value("${zt.ip.timeout}")
private int timeOut;
@Autowired
private EquipStatusRealTimeService realTimeService;
@Autowired
private LaserCutting3DMapper laserCutting3DMapper;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
List<String> ipAddressList = Arrays.asList(ipAddress1);
for (String ipAddress : ipAddressList) {
String equipCode = "";
String equipName = "";
String equipFactory = "";
switch (ipAddress) {
case "10.1.25.175":
equipCode = "076707-165";
equipName = "三维激光切割机";
equipFactory = "01跨东南";
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
realTimeService.saveEquip("制件车间", equipCode, equipName, "关机");
continue;
}
realTimeService.saveEquip("制件车间", equipCode, equipName, "开机");
//速度
String cuttingSpeed = ClientSocketUtil.send(ipAddress, "P101");
//功率
String laserPower = ClientSocketUtil.send(ipAddress, "P102");
//气体压力
String gasPressure = ClientSocketUtil.send(ipAddress, "P107");
if ("0".equals(cuttingSpeed) && "0".equals(laserPower) && "0".equals(gasPressure)){
log.error("ip: {}能ping通, 但62944端口连接不上", ipAddress);
continue;
}
LaserCutting3DMachine machine = new LaserCutting3DMachine();
machine.setAlias(equipName);
machine.setEquipCode(equipCode);
machine.setCuttingSpeed(new BigDecimal(cuttingSpeed));
machine.setGasPressure(new BigDecimal(gasPressure));
machine.setLaserPower(new BigDecimal(laserPower));
machine.setCreateTime(new Date());
machine.setStatus("1");
machine.setEquipFactory(equipFactory);
laserCutting3DMapper.insert(machine);
}
}
}
\ No newline at end of file
package net.vtstar.zhongtong.avi.gateway.stamping.job;
import lombok.extern.slf4j.Slf4j;
import net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCuttingMachine;
import net.vtstar.zhongtong.avi.gateway.stamping.mapper.LaserCuttingMapper;
import net.vtstar.zhongtong.avi.gateway.stamping.utils.ClientSocketUtil;
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.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 激光切管机数据采集JOB
*/
@Slf4j
@Component
public class LaserCuttingMachineJob extends QuartzJobBean {
private String ipAddress1 = "10.1.25.176";
private String ipAddress2 = "10.1.25.177";
@Value("${zt.ip.pingtimes}")
private int pingTimes;
@Value("${zt.ip.timeout}")
private int timeOut;
@Autowired
private EquipStatusRealTimeService realTimeService;
@Autowired
private LaserCuttingMapper mapper;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
List<String> ipAddressList = Arrays.asList(ipAddress1, ipAddress2);
for (String ipAddress : ipAddressList) {
String equipCode = "";
String equipName = "";
String equipFactory = "";
switch (ipAddress) {
case "10.1.25.176":
equipCode = "076707-174";
equipName = "激光切管机";
equipFactory = "03西北";
break;
case "10.1.25.177":
equipCode = "076707-166";
equipName = "激光切管机";
equipFactory = "03西南";
break;
}
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
realTimeService.saveEquip("制件车间", equipCode, equipName, "关机");
continue;
}
realTimeService.saveEquip("制件车间", equipCode, equipName, "开机");
//速度
String cuttingSpeed = ClientSocketUtil.send(ipAddress, "P101");
//功率
String laserPower = ClientSocketUtil.send(ipAddress, "P102");
//气体压力
String gasPressure = ClientSocketUtil.send(ipAddress, "P107");
if ("0".equals(cuttingSpeed) && "0".equals(laserPower) && "0".equals(gasPressure)){
log.error("ip: {}能ping通, 但62944端口连接不上", ipAddress);
continue;
}
LaserCuttingMachine machine = new LaserCuttingMachine();
machine.setAlias(equipName);
machine.setEquipCode(equipCode);
machine.setCuttingSpeed(new BigDecimal(cuttingSpeed));
machine.setGasPressure(new BigDecimal(gasPressure));
machine.setLaserPower(new BigDecimal(laserPower));
machine.setCreateTime(new Date());
machine.setStatus("1");
machine.setEquipFactory(equipFactory);
mapper.insert(machine);
}
}
}
\ No newline at end of file
package net.vtstar.zhongtong.avi.gateway.stamping.mapper;
import net.vtstar.user.mybatis.BaseMapper;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.FlatLaserCuttingMachine;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Mapper
public interface FlatLaserCuttingMapper extends BaseMapper<FlatLaserCuttingMachine> {
}
package net.vtstar.zhongtong.avi.gateway.stamping.mapper;
import net.vtstar.user.mybatis.BaseMapper;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCutting3DMachine;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Mapper
public interface LaserCutting3DMapper extends BaseMapper<LaserCutting3DMachine> {
}
package net.vtstar.zhongtong.avi.gateway.stamping.mapper;
import net.vtstar.user.mybatis.BaseMapper;
import net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCuttingMachine;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Mapper
public interface LaserCuttingMapper extends BaseMapper<LaserCuttingMachine> {
}
package net.vtstar.zhongtong.avi.gateway.stamping.utils;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.net.Socket;
/**
* @Author: xiadongwei
* @Date: 2020/4/8 17:15
*/
@Slf4j
public class ClientSocketUtil {
static Socket server;
static Integer port = 62944;
public static void main (String[] s){
while (true){
send("10.1.25.178", "P101");
send("10.1.25.178", "P102");
send("10.1.25.178", "P107");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static String send(String ip, String data){
//连接服务端
OutputStreamWriter osw = null;
BufferedWriter bw = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
server = new Socket(ip, port);
//向服务端写入数据
osw = new OutputStreamWriter(server.getOutputStream());
bw = new BufferedWriter(osw);
//<get><var>.P107</var><auto>yes</auto></get>
bw.write("<get><var>." + data + "</var><auto>yes</auto></get>\r\n");
bw.flush();
isr = new InputStreamReader(server.getInputStream());
br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
sb.append(br.readLine());
String result = sb.toString();
log.error("大族激光读取结果:{}", result);
if (result.contains("err")){
return "0";
}else{
return result.replace("<get><." + data + ">", "")
.replace("</." + data + "><auto>yes</auto></get>", "");
}
} catch (Exception e) {
log.error("连接异常!");
}finally {
try {
if (null != osw) {
osw.close();
}
if (null != bw) {
bw.close();
}
if (null != isr) {
isr.close();
}
if (null != br) {
br.close();
}
if (null != server && server.isConnected()) {
server.close();
}
} catch (IOException e) {
log.error("连接异常!");
}
}
return "0";
}
}
......@@ -55,7 +55,6 @@ public class ErrorFrameJob extends QuartzJobBean {
//ZTLOG_2019-10-26_11-35-46
String dateString = DateUtils.parseDateToString(new Date(), "yyyy-MM-dd");
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)) {
log.error("ping: {}失败, 此次同步试交车间错误帧数据操作结束!", ipAddress);
realTimeService.saveEquip("质量管理部", "", "错误帧", "关机");
return;
}
......
......@@ -25,7 +25,8 @@ import javax.sql.DataSource;
"net.vtstar.zhongtong.avi.laboratory.mapper",
"net.vtstar.zhongtong.avi.gateway.parts.mapper",
"net.vtstar.zhongtong.avi.monitoring.mapper",
"net.vtstar.zhongtong.avi.gateway.painting.mapper"
"net.vtstar.zhongtong.avi.gateway.painting.mapper",
"net.vtstar.zhongtong.avi.gateway.stamping.mapper"
},
sqlSessionFactoryRef = "sqlSessionFactoryMySQL")
public class MybatisMySQLConfig {
......
......@@ -25,7 +25,7 @@ public class Constant {
//根据屏号工作室分组key
public static final String LED_PREFIX = "led:";
//进车数统计
public static final String BUS_SIZE_IN = "BUS:IN";
public static final String BUS_SIZE_IN = "BUS:IN:";
//进车数统计
public static final String BUS_SIZE_OUT = "BUS:OUT:";
......
......@@ -35,6 +35,12 @@ public class StationPassInfo {
@Column(name = "rfid")
private String rfid;
@Show(label = "车身号")
@ApiModelProperty(notes = "车身号")
@Column(name = "bus_no")
@Search
private String busNo;
@Column(name = "area_no")
private String areaNo;
......
......@@ -12,6 +12,7 @@ import net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation;
import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Skid;
import net.vtstar.zhongtong.avi.monitoring.domain.Vehicle;
import net.vtstar.zhongtong.avi.monitoring.domain.bo.MQTTMessageBO;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.Direction;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
import net.vtstar.zhongtong.avi.monitoring.service.StationPassInfoService;
......@@ -37,7 +38,7 @@ import java.util.*;
public class AVIMonitorJob extends GatherJob {
private static final String EQUIPMENT_TYPE = "PLC";
public static List<String> rfidList1 = Arrays.asList("rfid51", "rfid52", "rfid53", "rfid54");
public static MQTTMessageBO messageBO = new MQTTMessageBO();
@Autowired
private EquipInfoService equipInfoService;
......@@ -251,10 +252,6 @@ public class AVIMonitorJob extends GatherJob {
log.error("平移车上车时找不到对应的滑撬: {}", vehicle.getMqttPrefix());
continue;
}
//todo: 若平移车位于HXG2-1位置, 且平移车反转(向东), 则认为是向底盘下车操作, 判断工序补扫情况
if ("439".equals(vehicle.getLaneRfid()) && vehicle.getTurnR()){
passInfoService.checkPassInfo(skid.getWorkOrderNo(), skid.getRfid());
}
log.error("平移车: {} 下车到工位:{}", vehicle.getMqttPrefix(), station.getCode());
vehicle.setSkid(null);
vehicle.setCurrentRfid(null);
......@@ -265,8 +262,15 @@ public class AVIMonitorJob extends GatherJob {
//更新平移车
valueOperations.set(Constant.VEHICLE_PREFIX + vehicle.getMqttPrefix(), vehicle);
log.error("-------------重置平移车------------------");
//todo: 若平移车位于HXG2-1位置, 且平移车反转(向东), 则认为是向底盘下车操作, 判断工序补扫情况
if ("439".equals(vehicle.getLaneRfid()) && vehicle.getTurnR()){
passInfoService.checkPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid());
skid.setBusNo("");
skid.setWorkOrderNo("");
valueOperations.set(Constant.SKID_PREFIX + skid.getRfid(), skid);
continue;
}
Long laneId = station.getLaneId();
List<PaintshopStation> lands = new ArrayList<>();
List<PaintshopStation> temStation = laneStationCache.get(laneId, ArrayList.class);
for (PaintshopStation land : temStation) {
......@@ -280,7 +284,7 @@ public class AVIMonitorJob extends GatherJob {
PaintshopStation end = lands.get(lands.size() - 1);
//下车时, 记录进去车道的开始时间, 并将记录ID绑定在工位上
Long passInfoId = 0L;
passInfoId = passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), station.getAreaName(), station.getCode());
passInfoId = passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid(), station.getAreaName(), station.getCode());
if (start.getCode().equals(station.getCode())) {
//车道西头下车, 所有工位向东平移一位
for (int j = lands.size() - 1; j > 0; j--) {
......@@ -327,6 +331,7 @@ public class AVIMonitorJob extends GatherJob {
size++;
}
valueOperations.set(areaKey, size);
saveRfidInfo(areaKey, skid.getRfid());
//更新工位
for (PaintshopStation land : lands) {
valueOperations.set(Constant.STATION_PREFIX + land.getCode(), land);
......@@ -336,4 +341,11 @@ public class AVIMonitorJob extends GatherJob {
log.error("-------------下车逻辑结束------------------");
}
}
private void saveRfidInfo(String areaKey, String rfid){
messageBO.setID(rfid);
messageBO.setState(0);
messageBO.setCreateDate(RfidMessageHandler.format.format(new Date()));
listOperations.rightPush("rfid:" + areaKey, messageBO);
}
}
\ No newline at end of file
......@@ -115,10 +115,7 @@ public class AviWarningJob extends GatherJob {
int length = body.readableBytes();
byte[] bytes = new byte[length];
body.getBytes(body.readerIndex(), bytes);
log.info("读取读取数据。ip{}, 端口{}, slave{}, start{}, size{}", poolKey.getHost(), poolKey.getPort(), slaveId, start, quantity);
log.info("data:{}", Arrays.toString(bytes));
for (EquipDataTemplateItem templateItem : value) {
Integer address = templateItem.getAddress();
int quality = address - start;
......
......@@ -8,6 +8,7 @@ import net.vtstar.zhongtong.avi.equipment.service.RunRecordService;
import net.vtstar.zhongtong.avi.global.constant.Constant;
import net.vtstar.zhongtong.avi.monitoring.domain.Skid;
import net.vtstar.zhongtong.avi.monitoring.domain.Warning;
import net.vtstar.zhongtong.avi.monitoring.domain.bo.MQTTMessageBO;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.BusType;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.DateType;
import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
......@@ -30,7 +31,6 @@ import java.util.stream.Collectors;
@Component
public class RedisToCacheJob extends GatherJob {
public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy:MM:dd");
@Resource(name = "redisTemplate")
private ValueOperations valueOperations;
@Resource(name = "redisTemplate")
......@@ -47,7 +47,7 @@ public class RedisToCacheJob extends GatherJob {
log.info("______________");
log.info("RedisToCacheJob start");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy:MM:dd");
//处理报警
Set<String> warningKeys = redisTemplate.keys(Constant.WARNING_PREFIX + "*");
Map<String, List<String>> warningKeyMap = warningKeys.stream().collect(Collectors.groupingBy(a -> a.split(":")[1]));
......@@ -116,7 +116,7 @@ public class RedisToCacheJob extends GatherJob {
webStationCache.put("stationList", areas);
}
private void addStatistics(String today, List<CarStatisticsVO> vos, String code, DateType dateType) {
/*private void addStatistics(String today, List<CarStatisticsVO> vos, String code, DateType dateType) {
CarStatisticsVO vo = new CarStatisticsVO();
vo.setAreaNo(code);
......@@ -140,6 +140,42 @@ public class RedisToCacheJob extends GatherJob {
}
out.setBusType(BusType.OUT);
vos.add(vo);
vos.add(out);
}*/
//出入车数量根据RFID号去重
private void addStatistics(String today, List<CarStatisticsVO> vos, String code, DateType dateType) {
CarStatisticsVO vo = new CarStatisticsVO();
vo.setAreaNo(code);
vo.setDateType(dateType);
vo.setBusType(BusType.IN);
String areaCodeIn = "rfid:" + Constant.BUS_SIZE_IN + code + ":" + today;
Long sizeIn = listOperations.size(areaCodeIn);
if (null == sizeIn){
vo.setSize(BigDecimal.ZERO);
}else{
List<MQTTMessageBO> rangeIn = listOperations.range(areaCodeIn, 0, sizeIn);
List<String> rfidListIn = rangeIn.stream().map(MQTTMessageBO::getID).collect(Collectors.toList());
List<String> distinctListIn = rfidListIn.stream().distinct().collect(Collectors.toList());
vo.setSize(BigDecimal.valueOf(distinctListIn.size()));
}
CarStatisticsVO out = new CarStatisticsVO();
out.setAreaNo(code);
out.setDateType(dateType);
out.setBusType(BusType.OUT);
String areaCodeOut = "rfid:" + Constant.BUS_SIZE_OUT + code + ":" + today;
Long sizeOut = listOperations.size(areaCodeOut);
if (null == sizeOut){
out.setSize(BigDecimal.ZERO);
}else{
List<MQTTMessageBO> rangeOut = listOperations.range(areaCodeOut, 0, sizeOut);
List<String> rfidListOut = rangeOut.stream().map(MQTTMessageBO::getID).collect(Collectors.toList());
List<String> distinctListOut = rfidListOut.stream().distinct().collect(Collectors.toList());
out.setSize(BigDecimal.valueOf(distinctListOut.size()));
}
vos.add(vo);
vos.add(out);
}
......
......@@ -128,13 +128,6 @@ public class AreaService {
if (null == sta){
return sta;
}
for (CarStatisticsVO statisticsVO : sta){
if ("0".equals(statisticsVO.getAreaNo()) && "YESTERDAY".equals(statisticsVO.getDateType().name()) && "OUT".equals(statisticsVO.getBusType().name())){
if (null == statisticsVO.getSize() || statisticsVO.getSize().intValue() == 0){
statisticsVO.setSize(new BigDecimal(30 + Math.random() * 20).setScale(0, BigDecimal.ROUND_HALF_UP));
}
}
}
return sta;
}
}
......@@ -51,7 +51,7 @@ public class StationPassInfoService {
private ValueOperations valueOperations;
//创建过站信息记录
public Long createPassInfo(String workOrderNo, String rfid, String areaNo, String stationNo) {
public Long createPassInfo(String workOrderNo, String busNo, String rfid, String areaNo, String stationNo) {
StationPassInfo info = new StationPassInfo();
info.setVIN(workOrderNo);
info.setAreaNo(areaNo);
......@@ -61,6 +61,7 @@ public class StationPassInfoService {
if (null == areaNo) {
info.setAreaNo("");
}
info.setBusNo(busNo);
info.setRfid(rfid);
info.setStationNo(stationNo);
info.setStationName(getPassNameByStationNo(stationNo));
......@@ -70,7 +71,7 @@ public class StationPassInfoService {
info.setCreateBy("RFID");
passInfoMapper.insert(info);
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.getBusNo(), info.getAreaNo(),
info.getStationNo(), DateUtils.parseDateToString(info.getPassTime(), "yyyy-MM-dd HH:mm:ss"),
null, 1});
return info.getId();
......@@ -86,6 +87,7 @@ public class StationPassInfoService {
if (null == station.getAreaName()) {
info.setAreaNo("");
}
info.setBusNo(station.getSkid().getBusNo());
info.setRfid(station.getSkid().getRfid());
info.setStationNo(station.getCode());
info.setStationName(getPassNameByStationNo(station.getCode()));
......@@ -96,7 +98,7 @@ public class StationPassInfoService {
passInfoMapper.insert(info);
//todo:!!!!!!!!!!!!!!!!
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.getBusNo(), info.getAreaNo(),
info.getStationNo(), DateUtils.parseDateToString(info.getPassTime(), "yyyy-MM-dd HH:mm:ss"),
null, 1});
}
......@@ -128,7 +130,7 @@ public class StationPassInfoService {
byId.setCreateTime(new Date());
passInfoMapper.update(byId);
String sql = "INSERT INTO VEHICLE_PASSING_INFO VALUES (?,?,?,?,?,?,?)";
mesSqlServerJdbcTemplate.update(sql, new Object[]{info.getVIN(), byId.getRfid(), byId.getAreaNo(),
mesSqlServerJdbcTemplate.update(sql, new Object[]{info.getVIN(), byId.getBusNo(), byId.getAreaNo(),
info.getStationNo(), DateUtils.parseDateToString(info.getPassTime(), "yyyy-MM-dd HH:mm:ss"),
null, 1});
}
......@@ -143,7 +145,7 @@ public class StationPassInfoService {
valueOperations.set(statusR, false);
}
public void checkPassInfo(String workOrderNo, String rfid) {
public void checkPassInfo(String workOrderNo, String busNo, String rfid) {
Boolean status = (Boolean) valueOperations.get(statusR);
Integer startInt = (Integer) valueOperations.get(startTimeR);
Integer endInt = (Integer) valueOperations.get(endTimeR);
......@@ -169,6 +171,7 @@ public class StationPassInfoService {
info.setVIN(workOrderNo);
info.setAreaNo(getAreaNoByName(passName));
info.setStationNo(getStationNoByName(passName)[0]);
info.setBusNo(busNo);
info.setRfid(rfid);
info.setStationName(passName);
info.setPassTime(new Date());
......@@ -190,6 +193,7 @@ public class StationPassInfoService {
info.setVIN(workOrderNo);
info.setAreaNo(getAreaNoByName(passName));
info.setStationNo(getStationNoByName(passName)[0]);
info.setBusNo(busNo);
info.setRfid(rfid);
info.setStationName(passName);
info.setPassTime(new Date(stationPassInfo.getCreateTime().getTime() - (time * 60 * 1000)));
......
......@@ -174,6 +174,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
return;
}
listOperations.rightPush("rfid:testLog:before:" + vehicleCode + ":" + today, messageBO);
String rfid = vehicle.getCurrentRfid();
//若当前平移车上绑定了RFID, 并且与当前mqtt信息中的ID一致, 并且state=1, 则认为这是读写头的重发现象
if (null != rfid && id.equals(rfid)) {
......@@ -197,7 +198,6 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
vehicle.setDownTime(null);
vehicle.setDownTimeMin(0);
vehicle.setCurrentRfid(id);
vehicle.setSkid(skid);
if (rfidList2.contains(vehicleCode)) {
valueOperations.set(Constant.VEHICLE_PREFIX + otherCode, vehicle);
......@@ -222,23 +222,12 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
valueOperations.set(Constant.SKID_PREFIX + id, skid);
valueOperations.set(Constant.VEHICLE_PREFIX_REWORK, "");
valueOperations.set(Constant.VEHICLE_PREFIX_REWORK_BUSNO, "");
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), "返修上线", "");
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid(), "返修上线", "");
return;
}
}
//若是焊装车间进车,绑定滑撬与车身关系
if ((vehicleCode.equals(Constant.HANZHUANG_VEHICLE1_RFID) || vehicleCode.equals(Constant.HANZHUANG_VEHICLE2_RFID))) {
//记录焊装上车的信息
String format = dateFormat.format(date);
listOperations.rightPush("rfid:log:shangqiao:" + format, messageBO);
String key = Constant.BUS_SIZE_IN + "0:" + format;
Integer size = (Integer) valueOperations.get(key);
if (null == size) {
size = 1;
} else {
size++;
}
valueOperations.set(key, size);
String keyW = EquipDataUtil.getTestValueKey(Constant.ROTARY_ROLLER_BED_W);
testValueOperations.set(keyW, null == testValueOperations.get(keyW) ? 0 : ((int) testValueOperations.get(keyW)) + 1);
......@@ -259,7 +248,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
valueOperations.set(Constant.HANZHUANG_VEHICLE_BUSNO_KEY + vehicleCode, "");
valueOperations.set(Constant.HANZHUANG_VEHICLE_WORKNO_KEY + vehicleCode, "");
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), "涂装上线", "HXG1-1");
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid(),"涂装上线", "HXG1-1");
return;
}
//底盘读写头
......@@ -277,7 +266,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
}
skid.setBusType(ProductionType.OTHER);
valueOperations.set(Constant.SKID_PREFIX + id, skid);
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), "轻客上线", "");
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid(),"轻客上线", "");
listOperations.rightPush("rfid:log:qingke:" + vehicleCode, messageBO);
}
//此时为在电泳一侧上车, 并且停到了第二个读写头的位置, 和其他两个读写头的平移车相同处理方式
......@@ -294,10 +283,11 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
size++;
}
valueOperations.set(areaKey, size);
saveRfidInfo(areaKey, messageBO);
if (null != skid) {
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getRfid(), "涂装下线", "HXG2-1");
passInfoService.createPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid(),"涂装下线", "HXG2-1");
//todo: 校验工单是否存在漏扫的工序
passInfoService.checkPassInfo(skid.getWorkOrderNo(), skid.getRfid());
passInfoService.checkPassInfo(skid.getWorkOrderNo(), skid.getBusNo(), skid.getRfid());
}
listOperations.rightPush("rfid:log:chuche:" + today, messageBO);
return;
......@@ -471,6 +461,17 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
//若为涂装首工位上车, 且为焊装刚刚过来的, 此时无法从工位列表中找到滑撬信息, 所以单独处理
if (vehicleCode.equals(Constant.TUZHUANG_VEHICLE1_RFID) && Constant.TUZHUANG_LANE1_RFID.equals(vehicle.getLaneRfid())) {
String format = dateFormat.format(date);
String areaKey = Constant.BUS_SIZE_IN + "0:" + format;
Integer size = (Integer) valueOperations.get(areaKey);
if (null == size) {
size = 1;
} else {
size++;
}
valueOperations.set(areaKey, size);
saveRfidInfo(areaKey, messageBO);
valueOperations.set(Constant.VEHICLE_PREFIX + vehicleCode, vehicle);
String keyW = EquipDataUtil.getTestValueKey(Constant.ROTARY_ROLLER_BED_P1);
testValueOperations.set(keyW, null == testValueOperations.get(keyW) ? 0 : ((int) testValueOperations.get(keyW)) + 1);
......@@ -511,7 +512,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
size++;
}
valueOperations.set(areaKey, size);
saveRfidInfo(areaKey, messageBO);
for (PaintshopStation land : lands) {
valueOperations.set(Constant.STATION_PREFIX + land.getCode(), land);
}
......@@ -526,7 +527,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
if (!isFind){
for (PaintshopStation station : stationByCache) {
PaintshopStation land = (PaintshopStation) valueOperations.get(Constant.STATION_PREFIX + station.getCode());
if (land.getSkid() != null && id.equals(land.getSkid().getRfid())) {
if (null != land && null != land.getSkid() && id.equals(land.getSkid().getRfid())) {
passInfoService.endPassInfo(land);
land.setSkid(null);
land.setState(StationState.FREE);
......@@ -543,6 +544,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
size++;
}
valueOperations.set(areaKey, size);
saveRfidInfo(areaKey, messageBO);
}
}
}
......@@ -603,4 +605,8 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
return otherCode;
}
private void saveRfidInfo(String areaKey, MQTTMessageBO messageBO){
listOperations.rightPush("rfid:" + areaKey, messageBO);
}
}
......@@ -51,7 +51,6 @@ public class AssemblyTorqueWrenchJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)){
log.error("ping: {}失败, 此次同步总装车间智能扭力扳手数据操作结束!", ipAddress);
realTimeService.saveEquip("总装车间", "", "智能扭力扳手", "关机");
return;
}
......
......@@ -47,7 +47,6 @@ public class MesHZWorkOrderJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)){
log.error("ping: {}失败, 此次同步mes数据操作结束!", ipAddress);
return;
}
log.info("--------开始同步mes焊装数据--------");
......@@ -73,7 +72,7 @@ public class MesHZWorkOrderJob extends QuartzJobBean {
}
for (MesHZWorkOrderInfo info : query){
List<MesHZWorkOrderInfo> orderNo = mapper.findList(new WhereFilter() {{
addFilter("WONo", Operation.EQUAL, info.getWorkOrderNo());
addFilter("work_order_no", Operation.EQUAL, info.getWorkOrderNo());
}}, MesWorkOrderInfo.class);
if (CollecUtils.isEmpty(orderNo)){
mapper.insert(info);
......
......@@ -46,7 +46,6 @@ public class MesWorkOrderJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)){
log.error("ping: {}失败, 此次同步mes数据操作结束!", ipAddress);
return;
}
log.info("--------开始同步mes数据--------");
......
......@@ -49,7 +49,6 @@ public class TestLineResultJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)){
log.error("ping: {}失败, 此次同步试交车间检测线数据操作结束!", ipAddress);
realTimeService.saveEquip("质量管理部", "769000-04", "检测线", "关机");
return;
}
......
......@@ -49,7 +49,6 @@ public class TestSpeedResultJob extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
if (!PingIpUtils.ping(ipAddress, pingTimes, timeOut)){
log.error("ping: {}失败, 此次同步试交车间限速值数据操作结束!", ipAddress);
realTimeService.saveEquip("质量管理部", "", "限速值", "关机");
return;
}
......
package net.vtstar.zhongtong.avi.stamping.job;
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.stamping.domain.LaserCutting3DMachine;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component;
/**
* 激光切割机数据采集JOB
*/
@Slf4j
@Component
public class LaserCuttingMachineJob extends GatherJob {
private static final String NAME = "3D_LASER_CUTTING";
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
log.info("JobName: {}", context.getJobDetail().getKey().getName());
super.gatherByModbus(NAME, LaserCutting3DMachine.class);
}
public boolean handleObject(EquipmentData equipmentData) {
LaserCutting3DMachine data = (LaserCutting3DMachine) equipmentData;
String state = data.getStatus();
if (state == null) {
return false;
}
switch (state) {
case "0":
equipmentData.setEquipStatus(EquipStatusEnum.SHUTDOWN);
break;
case "1":
equipmentData.setEquipStatus(EquipStatusEnum.RUN);
break;
case "2":
equipmentData.setEquipStatus(EquipStatusEnum.ALARM);
break;
default:
return false;
}
return true;
}
}
......@@ -26,7 +26,6 @@ public class PingIpUtils {
String pingCommand = null;
Runtime r = Runtime.getRuntime();
String osName = System.getProperty("os.name");
log.info("项目所在系统是:" +osName);
if(osName.contains("Windows")){
//将要执行的ping命令,此命令是windows格式的命令
pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut;
......@@ -49,7 +48,6 @@ public class PingIpUtils {
}
//如果出现类似=23 ms ttl=64(TTL=64 Windows)这样的字样,出现的次数=测试次数则返回真
//return connectedCount == pingTimes;
log.info("ping通设备IP :{}的次数为:" +connectedCount, ipAddress);
return connectedCount >= pingTimes ? true : false;
} catch (Exception ex) {
ex.printStackTrace(); //出现异常则返回假
......
package net.vtstar.zhongtong.avi.utils;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
......@@ -12,12 +14,13 @@ import java.io.*;
* @Author: xiadongwei
* @Date: 2019/10/11 10:40
*/
@Slf4j
public class SmbFileUtil {
public static void main(String[] args) throws Exception {
//smb://xxx:xxx@192.168.2.188/testIndex/
//xxx:xxx是共享机器的用户名密码
String url = "smb://wanteng:wanteng@192.168.43.158/Music/";
String url = "smb://10.100.172.223/NCPrg/";
SmbFile file = new SmbFile(url);
if (file.exists()) {
SmbFile[] files = file.listFiles();
......@@ -25,8 +28,8 @@ public class SmbFileUtil {
System.out.println(f.getName());
}
}
// smbGet("smb://C1307890:Ivo123@10.20.2.33/CIMPublic/02 MES/SPC/Spc_Check_IVO_V1_00.ppt", "D:/ap_log");
// smbPut("smb://wanteng:wanteng@192.168.43.158/d$/英雄时刻/", "D:/error.xls");
smbGet("smb://10.100.172.223/NCPrg/新建文本文档.txt", "D:/111111.txt");
smbPut("smb://10.100.172.223/NCPrg/", "D:/yield.xls");
}
......@@ -70,14 +73,16 @@ public class SmbFileUtil {
}
//向共享目录上传文件
public static void smbPut(String remoteUrl, String localFilePath) {
public static Boolean smbPut(String remoteUrl, String localFilePath) {
InputStream in = null;
OutputStream out = null;
try {
File localFile = new File(localFilePath);
String fileName = localFile.getName();
SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);
SmbFile remoteFile;
remoteFile = new SmbFile(remoteUrl + "/" + fileName);
in = new BufferedInputStream(new FileInputStream(localFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte[] buffer = new byte[1024];
......@@ -86,7 +91,9 @@ public class SmbFileUtil {
buffer = new byte[1024];
}
} catch (Exception e) {
log.error("下发文件失败: {}", e.getMessage());
e.printStackTrace();
return false;
} finally {
try {
if (out != null) {
......@@ -99,6 +106,7 @@ public class SmbFileUtil {
e.printStackTrace();
}
}
return true;
}
}
......@@ -37,7 +37,7 @@ spring.mes.sqlserver.password=wanteng@2019
server.port=8082
logging.level.root=info
logging.level.root=error
#logging.level.net.vtstar=info
logging.level.net.vtstar.scada.base.equipmgt.mapper = error
logging.level.net.vtstar.zhongtong.avi.equipment.mapper = error
......
# Mqtt
mqtt.server-uri=tcp://10.1.25.223:1883
mqtt.server-uri=tcp://localhost:1883
mqtt.connection-timeout-second=10
mqtt.username=admin
mqtt.password=public
......
......@@ -21,11 +21,11 @@ spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderO
quartz.job.allow-start=true
quartz.job.taskInfos[0].jobName=net.vtstar.zhongtong.avi.stamping.job.LaserCuttingMachineJob
quartz.job.taskInfos[0].jobName=net.vtstar.zhongtong.avi.gateway.stamping.job.LaserCuttingMachineJob
quartz.job.taskInfos[0].jobGroup=LaserCuttingMachineJob
quartz.job.taskInfos[0].jobDescription=\u5C01\u88C5\u7EBF\u9884\u710A\u673A\u6570\u636E\u91C7\u96C6job
quartz.job.taskInfos[0].cronExpression=0/10 * * * * ?
quartz.job.taskInfos[0].start=false
quartz.job.taskInfos[0].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[0].start=true
quartz.job.taskInfos[1].jobName=net.vtstar.zhongtong.avi.equipment.job.CleanStatusDataJob
quartz.job.taskInfos[1].jobGroup=CleanStatusDataJob
......
......@@ -21,11 +21,11 @@ spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderO
quartz.job.allow-start=true
quartz.job.taskInfos[0].jobName=net.vtstar.zhongtong.avi.stamping.job.LaserCuttingMachineJob
quartz.job.taskInfos[0].jobName=net.vtstar.zhongtong.avi.gateway.stamping.job.LaserCuttingMachineJob
quartz.job.taskInfos[0].jobGroup=LaserCuttingMachineJob
quartz.job.taskInfos[0].jobDescription=\u5C01\u88C5\u7EBF\u9884\u710A\u673A\u6570\u636E\u91C7\u96C6job
quartz.job.taskInfos[0].cronExpression=0/10 * * * * ?
quartz.job.taskInfos[0].start=false
quartz.job.taskInfos[0].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[0].start=true
quartz.job.taskInfos[1].jobName=net.vtstar.zhongtong.avi.equipment.job.CleanStatusDataJob
quartz.job.taskInfos[1].jobGroup=CleanStatusDataJob
......@@ -332,4 +332,18 @@ quartz.job.taskInfos[43].jobName=net.vtstar.zhongtong.avi.gateway.parts.job.Stee
quartz.job.taskInfos[43].jobGroup=SteelCncCuttingMachineStateJob
quartz.job.taskInfos[43].jobDescription=\u578b\u94a2\u4e0b\u6599Job
quartz.job.taskInfos[43].cronExpression=0/15 * * * * ?
quartz.job.taskInfos[43].start=true
\ No newline at end of file
quartz.job.taskInfos[43].start=true
#3维激光切割机
quartz.job.taskInfos[44].jobName=net.vtstar.zhongtong.avi.gateway.stamping.job.LaserCutting3DMachineJob
quartz.job.taskInfos[44].jobGroup=LaserCutting3DMachineJob
quartz.job.taskInfos[44].jobDescription=\u5C01\u88C5\u7EBF\u9884\u710A\u673A\u6570\u636E\u91C7\u96C6job
quartz.job.taskInfos[44].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[44].start=true
#平板激光切割机
quartz.job.taskInfos[45].jobName=net.vtstar.zhongtong.avi.gateway.stamping.job.FlatLaserCuttingMachineJob
quartz.job.taskInfos[45].jobGroup=FlatLaserCuttingMachineJob
quartz.job.taskInfos[45].jobDescription=\u5C01\u88C5\u7EBF\u9884\u710A\u673A\u6570\u636E\u91C7\u96C6job
quartz.job.taskInfos[45].cronExpression=0 0/1 * * * ?
quartz.job.taskInfos[45].start=true
\ 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.stamping.mapper.FlatLaserCuttingMapper">
</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.stamping.mapper.LaserCutting3DMapper">
</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.stamping.mapper.LaserCuttingMapper">
</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