|
@@ -7,14 +7,18 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.zcxk.syncdata.dao.*;
|
|
|
import com.zcxk.syncdata.dto.BuildingDto;
|
|
|
+import com.zcxk.syncdata.dto.DeviceParams;
|
|
|
import com.zcxk.syncdata.entity.*;
|
|
|
import com.zcxk.syncdata.util.SnowflakeIdWorker;
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.nio.charset.Charset;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
@@ -38,6 +42,12 @@ public class RemoteMeterDataListener extends AnalysisEventListener<Object> {
|
|
|
private DeviceDimensionMapper deviceDimensionMapper;
|
|
|
@Autowired
|
|
|
private SnowflakeIdWorker idWorker;
|
|
|
+ @Resource
|
|
|
+ private RabbitTemplate rabbitTemplate;
|
|
|
+ @Value("${spring.rabbitmq.exchange}")
|
|
|
+ private String exchange;
|
|
|
+ @Value("${spring.rabbitmq.queue}")
|
|
|
+ private String queue;
|
|
|
|
|
|
AtomicInteger success = new AtomicInteger(0);
|
|
|
AtomicInteger fail = new AtomicInteger(0);
|
|
@@ -66,145 +76,24 @@ public class RemoteMeterDataListener extends AnalysisEventListener<Object> {
|
|
|
String unitName = map.get(9).trim();
|
|
|
String address = map.get(10).trim();
|
|
|
|
|
|
- Community community = communityMapper.findByNameV2(siteId,province,city,region,communityName);
|
|
|
- if (community == null) {
|
|
|
- community = new Community();
|
|
|
- community.setSiteId(siteId);
|
|
|
- community.setCustomerId(customerId);
|
|
|
- community.setName(communityName);
|
|
|
- community.setProvince(province);
|
|
|
- community.setCity(city);
|
|
|
- community.setRegion(region);
|
|
|
- community.setAddress(communityName);
|
|
|
- community.setStatus(1);
|
|
|
- community.setCreateBy("system");
|
|
|
- community.setUpdateBy("system");
|
|
|
- community.setDateCreate(LocalDateTime.now());
|
|
|
- community.setDateUpdate(LocalDateTime.now());
|
|
|
- community.setCode(String.format("%03d",Integer.valueOf("1")));
|
|
|
- communityMapper.insertSelective(community);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if(!"NULL".equals(unitName)){
|
|
|
- buildingName = buildingName + unitName;
|
|
|
- }
|
|
|
- Building building = buildingMapper.findByNameV2(siteId,community.getId(),buildingName);
|
|
|
- if (building == null) {
|
|
|
- building = new Building();
|
|
|
- building.setSiteId(siteId);
|
|
|
- building.setCommunity(community.getId());
|
|
|
- building.setName(buildingName);
|
|
|
- building.setProvince(province);
|
|
|
- building.setCity(city);
|
|
|
- building.setRegion(region);
|
|
|
- building.setAddress(community.getName()+buildingName);
|
|
|
- building.setStatus(1);
|
|
|
- building.setCreateBy("system");
|
|
|
- building.setUpdateBy("system");
|
|
|
- building.setCreateDate(LocalDateTime.now());
|
|
|
- building.setUpdateDate(LocalDateTime.now());
|
|
|
- buildingMapper.insertSelective(building);
|
|
|
- }
|
|
|
-
|
|
|
- Concentrator concentrator = concentratorMapper.findName(siteId,concentratorNo);
|
|
|
- if (concentrator == null) {
|
|
|
- concentrator = new Concentrator();
|
|
|
- concentrator.setSiteId(siteId);
|
|
|
- concentrator.setCustomerId(customerId);
|
|
|
- concentrator.setSerialNumber(concentratorNo);
|
|
|
- concentrator.setName(concentratorName);
|
|
|
- concentrator.setAddress(community.getName());
|
|
|
- concentrator.setDeviceType(deviceTypeId);
|
|
|
- concentrator.setBaudRate(1);
|
|
|
- concentrator.setIp("58.250.37.159");
|
|
|
- concentrator.setPort(7000);
|
|
|
- concentrator.setSimNo("1");
|
|
|
- concentrator.setBuildingId(building.getId());
|
|
|
- concentrator.setProvince(province);
|
|
|
- concentrator.setCity(city);
|
|
|
- concentrator.setRegion(region);
|
|
|
- concentrator.setDeviceStatus(0);
|
|
|
- concentrator.setStatus(1);
|
|
|
- concentrator.setCreateBy("system");
|
|
|
- concentrator.setUpdateBy("system");
|
|
|
- concentrator.setDateCreate(LocalDateTime.now());
|
|
|
- concentrator.setDateUpdate(LocalDateTime.now());
|
|
|
- concentratorMapper.insertSelective(concentrator);
|
|
|
- }
|
|
|
- ChannelNumber channelNumber = null;
|
|
|
- if(!"NULL".equals(channelNumberNo)){
|
|
|
- channelNumber = channelNumberMapper.findName(concentrator.getId(),channelNumberName);
|
|
|
- if (channelNumber == null) {
|
|
|
- channelNumber = new ChannelNumber();
|
|
|
- channelNumber.setSiteId(siteId);
|
|
|
- channelNumber.setConcentratorId(concentrator.getId());
|
|
|
- channelNumber.setChannelName(channelNumberName);
|
|
|
- channelNumber.setChannelNo(channelNumberNo);
|
|
|
- channelNumber.setStatus(1);
|
|
|
- channelNumber.setCreateBy("system");
|
|
|
- channelNumber.setUpdateBy("system");
|
|
|
- channelNumber.setDateCreate(LocalDateTime.now());
|
|
|
- channelNumber.setDateUpdate(LocalDateTime.now());
|
|
|
- channelNumberMapper.insertSelective(channelNumber);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- Device deviceTemp = deviceMapper.findByMeterNo(meterNo);
|
|
|
- if (deviceTemp == null) {
|
|
|
- Device device = new Device();
|
|
|
- device.setId(idWorker.nextId());
|
|
|
- device.setWaterMeterNo(meterNo);
|
|
|
- device.setWaterMeterFileNo(fileNo);
|
|
|
- device.setDeviceType(deviceTypeId);
|
|
|
- device.setSiteId(siteId);
|
|
|
- device.setSysId(55);
|
|
|
- device.setBuildingId(building.getId());
|
|
|
- device.setLocDesc(address);
|
|
|
- device.setCustomerId(customerId);
|
|
|
- device.setManufacturerId(8);
|
|
|
- device.setDeviceStatus("5");
|
|
|
- device.setStatus(true);
|
|
|
- device.setCreateBy("system");
|
|
|
- device.setUpdateBy("system");
|
|
|
- device.setDateCreate(LocalDateTime.now());
|
|
|
- device.setDateUpdate(LocalDateTime.now());
|
|
|
- deviceMapper.insertSelective(device);
|
|
|
-
|
|
|
- //2、同步设备维度关系
|
|
|
- DeviceDimension deviceDimension = new DeviceDimension();
|
|
|
- deviceDimension.setDeviceId(device.getId());
|
|
|
- deviceDimension.setProvince(String.valueOf(building.getProvince()));
|
|
|
- deviceDimension.setCity(String.valueOf(building.getCity()));
|
|
|
- deviceDimension.setRegion(String.valueOf(building.getRegion()));
|
|
|
- deviceDimension.setCommunity(String.valueOf(building.getCommunity()));
|
|
|
- deviceDimension.setBuilding(String.valueOf(building.getId()));
|
|
|
- deviceDimension.setBuilding(String.valueOf(building.getId()));
|
|
|
- deviceDimension.setDevice(device.getDeviceNo());
|
|
|
- deviceDimension.setCustomer(String.valueOf(device.getCustomerId()));
|
|
|
- deviceDimension.setStatus(1);
|
|
|
- deviceDimension.setCreateBy("system");
|
|
|
- deviceDimension.setUpdateBy("system");
|
|
|
- deviceDimension.setDateCreate(LocalDateTime.now());
|
|
|
- deviceDimension.setDateUpdate(LocalDateTime.now());
|
|
|
- deviceDimensionMapper.insertSelective(deviceDimension);
|
|
|
+ DeviceParams deviceParams = new DeviceParams();
|
|
|
+ deviceParams.setBatchId(1);
|
|
|
+ deviceParams.setMeterNo(meterNo);
|
|
|
+ deviceParams.setFileNo(fileNo);
|
|
|
+ deviceParams.setConcentratorNo(concentratorNo);
|
|
|
+ deviceParams.setConcentratorName(concentratorName);
|
|
|
+ deviceParams.setChannelNumberNo(channelNumberNo);
|
|
|
+ deviceParams.setChannelNumberName(channelNumberName);
|
|
|
+ deviceParams.setPort(port);
|
|
|
+ deviceParams.setCommunityName(communityName);
|
|
|
+ deviceParams.setBuildingName(buildingName);
|
|
|
+ deviceParams.setUnitName(unitName);
|
|
|
+ deviceParams.setAddress(address);
|
|
|
+
|
|
|
+ String msg = JSON.toJSONString(deviceParams);
|
|
|
+ log.info("transfer mq msg:{}",msg);
|
|
|
+ rabbitTemplate.convertAndSend(exchange, queue,msg.getBytes(Charset.forName("UTF-8")));
|
|
|
|
|
|
- //关系
|
|
|
- WaterRelatedDevice waterRelatedDevice = new WaterRelatedDevice();
|
|
|
- waterRelatedDevice.setDeviceId(device.getId());
|
|
|
- waterRelatedDevice.setConcentratorId(concentrator.getId());
|
|
|
- if (channelNumber != null) {
|
|
|
- waterRelatedDevice.setChannelNumberId(channelNumber.getId());
|
|
|
- }
|
|
|
- waterRelatedDevice.setPort(port);
|
|
|
- waterRelatedDevice.setIssueStatus(1);
|
|
|
- waterRelatedDevice.setStatus(1);
|
|
|
- waterRelatedDevice.setDateCreate(LocalDateTime.now());
|
|
|
- waterRelatedDevice.setDateUpdate(LocalDateTime.now());
|
|
|
- waterRelatedDevice.setCreateBy("system");
|
|
|
- waterRelatedDevice.setUpdateBy("system");
|
|
|
- waterRelatedDeviceMapper.insertSelective(waterRelatedDevice);
|
|
|
- }
|
|
|
|
|
|
int result = success.incrementAndGet();
|
|
|
log.info("finish={}",result);
|