//package com.thhy.engineering.modules.biz.config;
|
//
|
//import com.alibaba.fastjson.JSONObject;
|
//import com.thhy.engineering.modules.biz.device.mapper.SysDeviceMapper;
|
//import lombok.SneakyThrows;
|
//import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
|
//import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
|
//import org.springframework.beans.factory.annotation.Autowired;
|
//import org.springframework.context.annotation.Bean;
|
//import org.springframework.context.annotation.Configuration;
|
//import org.springframework.integration.annotation.IntegrationComponentScan;
|
//import org.springframework.integration.annotation.ServiceActivator;
|
//import org.springframework.integration.channel.DirectChannel;
|
//import org.springframework.integration.core.MessageProducer;
|
//import org.springframework.integration.mqtt.core.DefaultMqttPahoClientFactory;
|
//import org.springframework.integration.mqtt.core.MqttPahoClientFactory;
|
//import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter;
|
//import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter;
|
//import org.springframework.integration.mqtt.support.MqttHeaders;
|
//import org.springframework.messaging.Message;
|
//import org.springframework.messaging.MessageChannel;
|
//import org.springframework.messaging.MessageHandler;
|
//import org.springframework.messaging.MessagingException;
|
//
|
//import javax.annotation.Resource;
|
//import java.text.SimpleDateFormat;
|
//import java.util.Date;
|
//import java.util.HashMap;
|
//
|
//
|
//@Configuration
|
//@IntegrationComponentScan
|
//public class MqttInboundConfiguration {
|
//
|
// @Resource
|
// private MqttConfiguration mqttProperties;
|
// @Resource
|
// private SysDeviceMapper sysDeviceMapper;
|
//
|
// @Bean
|
// public MessageChannel mqttInputChannel() {
|
// return new DirectChannel();
|
// }
|
//
|
// @Bean
|
// public MqttPahoClientFactory mqttClientFactory() {
|
// DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
|
// String[] array = mqttProperties.getUrl().split(",");
|
// MqttConnectOptions options = new MqttConnectOptions();
|
// options.setServerURIs(array);
|
// options.setUserName(mqttProperties.getUsername());
|
// options.setPassword(mqttProperties.getPassword().toCharArray());
|
// options.setKeepAliveInterval(2);
|
//
|
// //接受离线消息
|
// options.setCleanSession(false);
|
// factory.setConnectionOptions(options);
|
// return factory;
|
// }
|
//
|
// //配置client,监听的topic
|
// @Bean
|
// public MessageProducer inbound() {
|
// String[] inboundTopics = mqttProperties.getTopic().split(",");
|
// MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter(
|
// mqttProperties.getClientId()+"_inbound",mqttClientFactory(), inboundTopics); //对inboundTopics主题进行监听
|
// adapter.setCompletionTimeout(5000);
|
// adapter.setQos(1);
|
// adapter.setConverter(new DefaultPahoMessageConverter());
|
// adapter.setOutputChannel(mqttInputChannel());
|
// return adapter;
|
// }
|
//
|
//
|
// //通过通道获取数据
|
// @Bean
|
// @ServiceActivator(inputChannel = "mqttInputChannel") //异步处理
|
// public MessageHandler handler() {
|
// return new MessageHandler() {
|
// @SneakyThrows
|
// @Override
|
// public void handleMessage(Message<?> message) throws MessagingException {
|
//// System.out.println("message:"+message);
|
// System.out.println("----------------------");
|
// System.out.println("message:"+message.getPayload());
|
// System.out.println("PacketId:"+message.getHeaders().getId());
|
// System.out.println("Qos:"+message.getHeaders().get(MqttHeaders.QOS));
|
// String topic = (String) message.getHeaders().get(MqttHeaders.RECEIVED_TOPIC);
|
// System.out.println("topic:"+topic);
|
// System.out.println(message.getPayload().toString());
|
// JSONObject json = JSONObject.parseObject(message.getPayload().toString());
|
// System.out.println("json---"+json);
|
// String type = json.get("type").toString();
|
// String timestamp = json.get("timestamp").toString();
|
// String worksId = json.get("worksId").toString();
|
// String rfid = json.get("rfid").toString();
|
// // !!! 原生数据录入 数据表中
|
// HashMap<String, Object> hashMap = new HashMap<>();
|
// hashMap.put("dataId","");
|
// hashMap.put("dataTime",timestamp);
|
// hashMap.put("worksId",worksId);
|
// hashMap.put("types",type);
|
// hashMap.put("moldId",rfid);
|
// sysDeviceMapper.moldDataInsert(hashMap);
|
// // !!! 根据 模具mn查询最新一条管片
|
// String pipeId= sysDeviceMapper.moldIdSelectPipeId(rfid);
|
// // !!! 判断 入窑还是出窑
|
// if(type.equals("upper")){// 入
|
// Date date = new Date();
|
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
// String format1 = format.format(date);
|
//// sysDeviceMapper.pipeInfoUpdate(pipeId,2,format1);
|
// //1.根据读卡模具数据与管片表进行匹配更新管片表中的状态,添加入窑时间
|
// sysDeviceMapper.pipeIdUpdate(pipeId,1,format1);//入窑修改管片状态
|
// //2.记录读卡数据表 根据 SIM 号到模块查询,新增一条读卡数据: 上次读卡次数 +1为本次读卡次数
|
// Integer current_cycle_time = sysDeviceMapper.mouldMouldMn(rfid);
|
// // 模具次数 +1
|
// int i = (current_cycle_time + 1);
|
// sysDeviceMapper.mouldUpdate(rfid,i);
|
// }else if(type.equals("offline")){//出
|
// Date date = new Date();
|
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
// String format1 = format.format(date);
|
// //1 根据读卡模具数据与管片表进行匹配 更新管片表中的状态,添加出窑时间
|
// sysDeviceMapper.pipeInfoUpdate(pipeId,2,format1); //管片出模状态 PDA (出模)
|
// sysDeviceMapper.pipeIdOutUpdate(pipeId,2,format1);//出窑--修改管片状态 (出窑)
|
// //2.记录读卡数据表 修改 模具时长=本次读卡时间 - 上一个模具读卡时间接受硬件读卡数据
|
// String dataTime = sysDeviceMapper.dataInTime(rfid);//该模具最新一条入窑的时间
|
// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
// long eTime = df.parse(timestamp).getTime();//出窑的时间
|
// long sTime = df.parse(dataTime).getTime();//入窑的时间
|
// //入->出 相差的秒数
|
// long diff = (eTime - sTime) / 1000;
|
// HashMap<String, Object> hashMap1 = new HashMap<>();
|
// hashMap1.put("moldId",rfid);
|
// hashMap1.put("useId","");
|
// hashMap1.put("seconds",diff);
|
// sysDeviceMapper.moldUseInsert(hashMap1);
|
// //模具状态 改为闲置
|
// sysDeviceMapper.mouldFreeUpdate(rfid);//修改 模具状态为 闲置
|
// }
|
// }
|
// public void deliveryComplete(IMqttDeliveryToken token) {
|
// System.out.println("deliveryComplete---------" + token.isComplete());
|
// }
|
//
|
// };
|
// }
|
//
|
//
|
//}
|