hym il y a 4 ans
Parent
commit
5eb6076ce1

+ 5 - 3
meter-reading-sishui/read-sqlSever/src/main/java/com/zcxk/dao/mysql/SendDao.java

@@ -1,8 +1,6 @@
 package com.zcxk.dao.mysql;
 
-import com.zcxk.entity.Device;
-import com.zcxk.entity.DeviceType;
-import com.zcxk.entity.MeterReadRecord;
+import com.zcxk.entity.*;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -18,4 +16,8 @@ public interface SendDao {
      List<MeterReadRecord> selectDeviceMeterReader(Map<String,Object> args);
 
      void insertDeviceInfo(List<Device>list);
+
+     Building getBuilding(Integer buildingId);
+
+     void insertSelective(DeviceDimension deviceDimension);
 }

+ 187 - 0
meter-reading-sishui/read-sqlSever/src/main/java/com/zcxk/entity/Building.java

@@ -0,0 +1,187 @@
+package com.zcxk.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+
+import lombok.Data;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+@ToString
+
+public class Building implements Serializable {
+   
+    private Integer id;
+
+  
+    private Integer siteId;
+
+
+    private String name;
+
+    ////@ApiModelProperty(value = "建筑地址", position = 4)
+    private String address;
+
+ 
+    private String contactPenson;
+
+    ////@ApiModelProperty(value = "竣工时间", position = 6)
+    //@DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate completionDate;
+
+   // //@ApiModelProperty(value = "联系电话", position = 7)
+    private String contactPhone;
+
+    ////@ApiModelProperty(value = "联网单位", position = 8)
+    private Integer accessUnitId;
+
+   // //@ApiModelProperty(value = "省", position = 9)
+    private Integer province;
+
+    ////@ApiModelProperty(value = "市", position = 10)
+    private Integer city;
+
+    ////@ApiModelProperty(value = "区", position = 11)
+    private Integer region;
+
+    ////@ApiModelProperty(value = "详细地址", position = 12)
+    private String detailAddress;
+
+   // //@ApiModelProperty(value = "行政区域编码", position = 13)
+    private String regionCode;
+
+    //@ApiModelProperty(value = "门弄牌号", position = 14)
+    private String doorNo;
+
+    //@ApiModelProperty(value = "路名", position = 15)
+    private String roadName;
+
+    //@ApiModelProperty(value = "街道编码", position = 16)
+    private String streeNo;
+
+    //@ApiModelProperty(value = "楼栋", position = 17)
+    private String buildlNo;
+
+    //@ApiModelProperty(value = "经度", position = 18)
+    private Double longitude;
+
+    //@ApiModelProperty(value = "纬度", position = 19)
+    private Double latitude;
+
+    //@ApiModelProperty(value = "高度", position = 20)
+    private String highly;
+
+    //@ApiModelProperty(value = "面积", position = 21)
+    private String buildingArea;
+
+    //@ApiModelProperty(value = "建筑分类", position = 22)
+    private Integer buildingCategory;
+
+    //@ApiModelProperty(value = "建筑结构", position = 23)
+    private Integer buildingStructure;
+
+    //@ApiModelProperty(value = "耐火等级", position = 24)
+    private Integer fireRating;
+
+    //@ApiModelProperty(value = "危险等级", position = 25)
+    private Integer riskRating;
+
+    //@ApiModelProperty(value = "是否有消控室", position = 26)
+    private Integer hasControlRoon;
+
+    //@ApiModelProperty(value = "消控室位置", position = 27)
+    private String controlRoonLoc;
+
+    //@ApiModelProperty(value = "建筑使用情况", position = 28)
+    private Integer buildingUsage;
+
+    //@ApiModelProperty(value = "建筑用途分类", position = 29)
+    private String buildingUsageCla;
+
+    //@ApiModelProperty(value = "产权", position = 30)
+    private Integer rights;
+
+    //@ApiModelProperty(value = "占地面积", position = 31)
+    private String coverArea;
+
+    //@ApiModelProperty(value = "标准层面积", position = 32)
+    private String standBedArea;
+
+    //@ApiModelProperty(value = "地下层数", position = 33)
+    private Integer underFloorNum;
+
+    //@ApiModelProperty(value = "地下面积", position = 34)
+    private String underFloorArea;
+
+    //@ApiModelProperty(value = "地上层数", position = 35)
+    private Integer floorNum;
+
+    //@ApiModelProperty(value = "地上面积", position = 36)
+    private String floorArea;
+
+    //@ApiModelProperty(value = "避难层数量", position = 37)
+    private String asylumFloorNum;
+
+    //@ApiModelProperty(value = "避难层面积", position = 38)
+    private String asylumFloorArea;
+
+    //@ApiModelProperty(value = "避难层位置", position = 39)
+    private String asylumFloorLoc;
+
+    //@ApiModelProperty(value = "消防电梯数", position = 40)
+    private String fireLiftNum;
+
+    //@ApiModelProperty(value = "消防电梯位置", position = 41)
+    private String fireLiftLoc;
+
+    //@ApiModelProperty(value = "入驻使用功能", position = 42)
+    private String checkInFunc;
+
+    //@ApiModelProperty(value = "最大容纳人数", position = 43)
+    private String maxCapacity;
+
+    //@ApiModelProperty(value = "是否有自动消防", position = 44)
+    private Integer hasAutoEquipme;
+
+    //@ApiModelProperty(value = "设施完好情况", position = 45)
+    private String equipmentStatus;
+
+    //@ApiModelProperty(value = "消防设施描述", position = 46)
+    private String equipmentDesc;
+
+    //@ApiModelProperty(value = "毗邻建筑情况", position = 47)
+    private String besideBuildindDesc;
+
+    //@ApiModelProperty(value = "地理情况", position = 48)
+    private String geography;
+
+    //@ApiModelProperty(value = "状态", hidden = true, position = 49)
+    private Integer status;
+
+    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    //@ApiModelProperty(value = "创建时间", position = 50, hidden = true)
+    private LocalDateTime createDate = LocalDateTime.now();
+
+    //@ApiModelProperty(value = "创建人", position = 51, hidden = true)
+    private String createBy = "system";
+
+    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    //@ApiModelProperty(value = "更新时间", position = 52, hidden = true)
+    private LocalDateTime updateDate = LocalDateTime.now();
+
+    //@ApiModelProperty(value = "更新用户", position = 53, hidden = true)
+    private String updateBy = "system";
+
+    //@ApiModelProperty(value = "小区", position = 54)
+    private Integer community;
+
+    //@ApiModelProperty(value = "单元", position = 55)
+    private String unit;
+
+}

+ 58 - 0
meter-reading-sishui/read-sqlSever/src/main/java/com/zcxk/entity/DeviceDimension.java

@@ -0,0 +1,58 @@
+package com.zcxk.entity;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+//@ApiModel(value="设备维度关系")
+@Data
+public class DeviceDimension {
+    //@ApiModelProperty(value="设备ID")
+    private Long deviceId;
+
+    //@ApiModelProperty(value="省")
+    private String province;
+
+    //@ApiModelProperty(value="市")
+    private String city;
+
+    //@ApiModelProperty(value="区")
+    private String region;
+
+    //@ApiModelProperty(value="小区")
+    private String community;
+
+    //@ApiModelProperty(value="建筑")
+    private String building;
+
+    //@ApiModelProperty(value="单元")
+    private String unit;
+
+    //@ApiModelProperty(value="楼层")
+    private String floor;
+
+    //@ApiModelProperty(value="设备编号")
+    private String device;
+
+    //@ApiModelProperty(value="客户")
+    private String customer;
+
+    //@ApiModelProperty(value="项目")
+    private String project;
+
+    //@ApiModelProperty(value="状态")
+    private Integer status;
+
+    //@ApiModelProperty(value="创建人")
+    private String createBy;
+
+    //@ApiModelProperty(value="更新人")
+    private String updateBy;
+
+    //@ApiModelProperty(value="创建时间")
+    private LocalDateTime dateCreate;
+
+    //@ApiModelProperty(value="更新时间")
+    private LocalDateTime dateUpdate;
+}

+ 24 - 3
meter-reading-sishui/read-sqlSever/src/main/java/com/zcxk/service/SyncService.java

@@ -5,9 +5,7 @@ import com.zcxk.config.QuartzManager;
 import com.zcxk.config.SnowflakeIdWorker;
 import com.zcxk.dao.mysql.SendDao;
 import com.zcxk.dao.sqlserver.ReceiveDao;
-import com.zcxk.entity.Device;
-import com.zcxk.entity.DeviceType;
-import com.zcxk.entity.WaterMeterBaseEntity;
+import com.zcxk.entity.*;
 import com.zcxk.job.SyncMeterDataJob;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -57,6 +55,29 @@ public class SyncService {
         if(needAddWaterMeter.size()>0){
             log.info("增加新增泗水水表");
             sendDao.insertDeviceInfo(needAddWaterMeter);
+            needAddWaterMeter.forEach(device->{
+                Building building = sendDao.getBuilding(device.getBuildingId());
+                //2、同步设备维度关系
+                DeviceDimension deviceDimension = new DeviceDimension();
+                deviceDimension.setDeviceId(device.getId());
+                if (building != null) {
+                    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.setFloor(String.valueOf(device.getFloor()));
+                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());
+                sendDao.insertSelective(deviceDimension);
+            });
+
         }
 
 

+ 4 - 4
meter-reading-sishui/read-sqlSever/src/main/resources/application-dev.properties

@@ -16,8 +16,8 @@ mybatis.configuration.map-underscore-to-camel-case=true
 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
 mybatis.configuration.use-column-label=true
 
-customerId=-1
-siteId=-1
-sysId=-1
-buildingId=-1
+customerId=137
+siteId=1
+sysId=58
+buildingId=1
 model=188\u534F\u8BAE\uFF08\u6709\u9600\uFF09

+ 120 - 0
meter-reading-sishui/read-sqlSever/src/main/resources/mysql-mapper/SendDao.xml

@@ -22,6 +22,126 @@
             #{item.sealNo} )
         </foreach>
     </insert>
+    <insert id="insertSelective" parameterType="com.bz.smart_city.entity.DeviceDimension">
+        <!--@mbg.generated-->
+        replace into sc_device_dimension
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="deviceId != null">
+                device_id,
+            </if>
+            <if test="province != null">
+                province,
+            </if>
+            <if test="city != null">
+                city,
+            </if>
+            <if test="region != null">
+                region,
+            </if>
+            <if test="community != null">
+                community,
+            </if>
+            <if test="building != null">
+                building,
+            </if>
+            <if test="unit != null">
+                unit,
+            </if>
+            <if test="floor != null">
+                `floor`,
+            </if>
+            <if test="device != null">
+                device,
+            </if>
+            <if test="customer != null">
+                customer,
+            </if>
+            <if test="project != null">
+                project,
+            </if>
+            <if test="status != null">
+                `status`,
+            </if>
+            <if test="createBy != null">
+                create_by,
+            </if>
+            <if test="updateBy != null">
+                update_by,
+            </if>
+            <if test="dateCreate != null">
+                date_create,
+            </if>
+            <if test="dateUpdate != null">
+                date_update,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="deviceId != null">
+                #{deviceId},
+            </if>
+            <if test="province != null">
+                #{province},
+            </if>
+            <if test="city != null">
+                #{city},
+            </if>
+            <if test="region != null">
+                #{region},
+            </if>
+            <if test="community != null">
+                #{community},
+            </if>
+            <if test="building != null">
+                #{building},
+            </if>
+            <if test="unit != null">
+                #{unit},
+            </if>
+            <if test="floor != null">
+                #{floor},
+            </if>
+            <if test="device != null">
+                #{device},
+            </if>
+            <if test="customer != null">
+                #{customer},
+            </if>
+            <if test="project != null">
+                #{project},
+            </if>
+            <if test="status != null">
+                #{status},
+            </if>
+            <if test="createBy != null">
+                #{createBy},
+            </if>
+            <if test="updateBy != null">
+                #{updateBy},
+            </if>
+            <if test="dateCreate != null">
+                #{dateCreate},
+            </if>
+            <if test="dateUpdate != null">
+                #{dateUpdate},
+            </if>
+        </trim>
+    </insert>
+    <select id="getBuilding" resultType="com.zcxk.entity.Building">
+        select
+        sb.*,
+        sau.name as access_unit_name,
+        sa1.name as province_name,
+        sa2.name as city_name,
+        sa3.name as region_name,
+        sc.name as community_name
+        from sc_building sb
+        left join sc_access_unit sau on (sau.id = sb.access_unit_id and sau.status = 1)
+        left join sc_area sa1 on (sa1.id = sb.province)
+        left join sc_area sa2 on (sa2.id = sb.city)
+        left join sc_area sa3 on (sa3.id = sb.region)
+        left join sc_community sc on (sc.id = sb.community)
+        where sb.status = 1 and sb.id = #{buildingId}
+    </select>
     <select id="selectDeviceMeterReader" resultType="com.zcxk.entity.MeterReadRecord">
       select device_no, read_time ,read_data
       from sc_meter_read_record where customer_id=#{customerId}