Browse Source

1新增娄山云调用设备添加接口

Xiaojh 4 years ago
parent
commit
db5fa9d804

+ 2 - 1
smart-city-platform/src/main/java/com/bz/smart_city/commom/security/WebSecurityConfig.java

@@ -99,7 +99,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/watermeter/getMeterReadData","/watermeter/getDeviceCustomerInfo","/watermeter/getPeriodMeterReadData","/data/clearingData","/data/meterReadData")
                 .antMatchers("/apply/register","/apply/detail","/apply/approve")
                 .antMatchers("/payFee/payFee")
-                .antMatchers("/waterMeter/getMeterByDeviceNo");
+                .antMatchers("/waterMeter/getMeterByDeviceNo")
+                .antMatchers("/device/synArchies");
     }
 
 

+ 21 - 7
smart-city-platform/src/main/java/com/bz/smart_city/controller/DeviceController.java

@@ -72,16 +72,16 @@ public class DeviceController {
     @GetMapping("/simpleQueryDeviceList")
     @ApiOperation(value = "简易设备查询接口")
     public AjaxMessage<Pagination<DeviceDto>> simpleQueryDeviceList(
-    		@ApiParam(value = "场景", required = true) @RequestParam(required = true) Integer sysId,
-    		@ApiParam(value = "设备编号", required = false) @RequestParam(required = false) String deviceNo,
-    		@ApiParam(value = "水表电子号", required = false) @RequestParam(required = false) String waterMeterNo,
-    		@ApiParam(value = "页数,非必传,默认第一页", required = false, defaultValue = "1") @RequestParam(required = false, defaultValue = "1") int pageNum,
+            @ApiParam(value = "场景", required = true) @RequestParam(required = true) Integer sysId,
+            @ApiParam(value = "设备编号", required = false) @RequestParam(required = false) String deviceNo,
+            @ApiParam(value = "水表电子号", required = false) @RequestParam(required = false) String waterMeterNo,
+            @ApiParam(value = "页数,非必传,默认第一页", required = false, defaultValue = "1") @RequestParam(required = false, defaultValue = "1") int pageNum,
             @ApiParam(value = "条数,非必传,默认15条", required = false, defaultValue = "15") @RequestParam(required = false, defaultValue = "15") int pageSize){
-    	LoginUser loginUser = UserUtil.getCurrentUser();
-    	Pagination<DeviceDto> pageInfo = deviceService.simpleQueryDeviceList(loginUser.getCurrentSiteId(), sysId, deviceNo, waterMeterNo, pageNum, pageSize);
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        Pagination<DeviceDto> pageInfo = deviceService.simpleQueryDeviceList(loginUser.getCurrentSiteId(), sysId, deviceNo, waterMeterNo, pageNum, pageSize);
         return new AjaxMessage<>(ResultStatus.OK, pageInfo);
     }
-    
+
     @GetMapping("/getDeviceListExcel")
     @ApiOperation(value = "导出设备列表excel")
     public void getDeviceListExcel(
@@ -199,6 +199,7 @@ public class DeviceController {
         return new AjaxMessage(ResultStatus.OK);
     }
 
+
     @ResponseBody
     @PutMapping("edit")
     //@PreAuthorize("hasAuthority('sys:device:edit')")
@@ -274,4 +275,17 @@ public class DeviceController {
         return new AjaxMessage(ResultStatus.OK);
     }
 
+
+    @ResponseBody
+    @PostMapping("synArchies")
+    public String synArchies(@RequestBody String json){
+        //接口调用插入表信息
+        String msg = "";
+        try{
+            msg = deviceService.synArchives(json);
+        }catch (Exception ex){
+            ex.printStackTrace();
+        }
+        return msg;
+    }
 }

+ 4 - 0
smart-city-platform/src/main/java/com/bz/smart_city/dto/DeviceDataDto.java

@@ -42,4 +42,8 @@ public class DeviceDataDto {
 
     @ApiModelProperty(value = "客户id", position = 12)
     private Integer customerId;
+    @ApiModelProperty(value = "agent名称", position = 13)
+    private String agentIdentifier;
+    @ApiModelProperty(value = "站点id", position = 14)
+    private Integer siteId;
 }

+ 12 - 12
smart-city-platform/src/main/java/com/bz/smart_city/dto/DeviceDto.java

@@ -40,25 +40,25 @@ public class DeviceDto extends Device {
 
     @ApiModelProperty(value = "省", position = 107)
     private Integer province;
-    
+
     @ApiModelProperty(value = "省名称", position = 107)
-    private String provinceName ; 
-    
+    private String provinceName ;
+
     @ApiModelProperty(value = "市", position = 108)
     private Integer city;
-    
+
     @ApiModelProperty(value = "市名称", position = 108)
-    private String cityName ; 
-    
+    private String cityName ;
+
     @ApiModelProperty(value = "区", position = 109)
     private Integer region ;
 
     @ApiModelProperty(value = "区名称", position = 109)
-    private String regionName ; 
-    
+    private String regionName ;
+
     @ApiModelProperty(value = "小区", position = 110)
     private Integer community;
-    
+
     @ApiModelProperty(value = "小区", position = 110)
     private String communityName;
 
@@ -91,13 +91,13 @@ public class DeviceDto extends Device {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "验收时间", position = 119)
     private LocalDateTime acceptTime;
-    
+
     @ApiModelProperty(value = "新表起度", position = 120)
     private String newMeterStart;
 
     @ApiModelProperty(value = "水表读数", position = 121)
     private String meterReading;
-    
+
     @ApiModelProperty(value = "安装主键", position = 122)
     private Integer installId ;
 
@@ -109,5 +109,5 @@ public class DeviceDto extends Device {
 
     @ApiModelProperty(value="阀门按钮状态 0:关阀 1:开阀",position = 125)
     private Integer valveButtonStatus = 1;
-    
+
 }

+ 11 - 0
smart-city-platform/src/main/java/com/bz/smart_city/entity/UserArchivesInfo.java

@@ -0,0 +1,11 @@
+package com.bz.smart_city.entity;
+
+import com.bz.smart_city.dto.DeviceDataDto;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserArchivesInfo {
+    private List<DeviceDataDto> list;
+}

+ 16 - 14
smart-city-platform/src/main/java/com/bz/smart_city/service/DeviceService.java

@@ -26,7 +26,7 @@ public interface DeviceService{
     int insertList(List<Device> devices);
 
     int updateByPrimaryKeySelective(Device device);
-    
+
     int countDeviceNumber();
 
     String  getMeterCode(String deviceCode) ;
@@ -34,7 +34,7 @@ public interface DeviceService{
     String  getDeviceCode(String meterCode);
 
     List<DeviceDto> getDeviceList( int pageNum, int pageSize);
-    
+
     DeviceDto getDeviceLastReceiveTime(Long deviceId);
 
     Pagination<DeviceDto> getList(Integer sysId, Integer buildingId, String deviceNo, Integer status, Integer manufacturerId, String equipmentType, String model, Integer isTag, Integer floor,
@@ -49,21 +49,23 @@ public interface DeviceService{
 
 
     void exportDeviceListAsXML(Integer sysId,
-                                      Integer buildingId,
-                                      String deviceNo,
-                                      Integer status,
-                                      String locDesc,
-                                      Integer province,
-                                      Integer city,
-                                      Integer region,
-                                      Integer community,
-                                      String errorType,
-                                      Integer customerId,
-                                      Integer days,
-                                      HttpServletResponse httpServletResponse);
+                               Integer buildingId,
+                               String deviceNo,
+                               Integer status,
+                               String locDesc,
+                               Integer province,
+                               Integer city,
+                               Integer region,
+                               Integer community,
+                               String errorType,
+                               Integer customerId,
+                               Integer days,
+                               HttpServletResponse httpServletResponse);
 
     void add(DeviceDataDto deviceDataDto);
 
+    String synArchives(String jsonStirig);
+
     void edit(DeviceDataDto deviceDataDto);
 
     void delete(Long id);

+ 132 - 34
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/DeviceServiceImpl.java

@@ -107,6 +107,15 @@ public  class DeviceServiceImpl implements DeviceService {
         return deviceMapper.insert(device);
     }
 
+
+    public int insertSynArchives(Device device) {
+        device.setCreateBy("admin");
+        device.setDateCreate(LocalDateTime.now());
+        device.setUpdateBy("admin");
+        device.setDateUpdate(LocalDateTime.now());
+        return deviceMapper.insert(device);
+    }
+
     @Override
     public int insertSelective(Device device) {
         device.setCreateBy(UserUtil.getCurrentUser().getUsername());
@@ -393,6 +402,95 @@ public  class DeviceServiceImpl implements DeviceService {
         log.info("end addDevice,result = " + result);
     }
 
+
+    @Override
+    @Transactional
+    public String synArchives(String jsonStirig){
+        log.info("begin addDevice,deviceDataDto = " + jsonStirig);
+        UserArchivesInfo userArchivesInfo = JSON.parseObject(jsonStirig.toString(),UserArchivesInfo.class);
+        int succ =0;//成功条数
+        int fail =0;//失败条数
+        String failMsg="";//返回失败消息体
+        for(int i=0; i<userArchivesInfo.getList().size(); i++){
+            DeviceDataDto deviceDataDto = userArchivesInfo.getList().get(i);
+            //查询设备类型
+            DeviceType deviceType = deviceTypeMapper.findByid(deviceDataDto.getDeviceType());
+
+            //1、添加设备
+            //LoginUser loginUser = UserUtil.getCurrentUser();
+            int resultDeviceNo = deviceMapper.findByDeviceNoUnique(null, deviceDataDto.getDeviceNo());
+            if (resultDeviceNo > 0) {
+                fail++;
+                failMsg += "【"+deviceDataDto.getDeviceNo()+"】设备编号已经存在";
+                continue;
+            }
+           /* if (deviceDataDto.getWaterMeterNo() != null && !StringUtils.equals("",deviceDataDto.getWaterMeterNo())) {
+                int resultWaterMeterNo = deviceMapper.findByWaterMeterNoUnique(null, deviceDataDto.getWaterMeterNo());
+                if (resultWaterMeterNo > 0) {
+                    fail++;
+                    throw new ServiceException(-900, "水表电子号已经存在");
+                }
+            }*/
+
+            //新增udip平台集成元
+            DeviceTypeDto deviceTypeDto = deviceTypeMapper.getById(deviceDataDto.getDeviceType());
+            String udipId = udipUnitService.saveUdipUnit(deviceDataDto.getDeviceNo(),deviceDataDto.getCustomerId(),deviceTypeDto);
+
+            Device device = new Device();
+            device.setId(idWorker.nextId());
+            device.setDeviceNo(StringUtils.lowerCase(deviceDataDto.getDeviceNo().trim()));
+            device.setDeviceType(deviceDataDto.getDeviceType());
+            device.setSysId(deviceDataDto.getSysId());
+            device.setSiteId(deviceDataDto.getSiteId());
+            device.setBuildingId(deviceDataDto.getBuildingId());
+            device.setFloor(deviceDataDto.getFloor());
+            device.setLocDesc(deviceDataDto.getLocDesc());
+            device.setManufacturerId(deviceType.getManufacturerId());
+            device.setDeviceStatus(5);//未启用
+            device.setStatus(1);
+            device.setXCoordinates(deviceDataDto.getXCoordinates());
+            device.setYCoordinates(deviceDataDto.getYCoordinates());
+            device.setIsTag(deviceDataDto.getXCoordinates() != null && deviceDataDto.getYCoordinates() != null ? 1 : 0);
+            device.setWaterMeterNo(deviceDataDto.getWaterMeterNo());
+            device.setWaterMeterFileNo(deviceDataDto.getWaterMeterFileNo());
+            device.setCustomerId(deviceDataDto.getCustomerId());
+            device.setWaterMeterNo(deviceDataDto.getWaterMeterNo());
+            device.setUdipId(udipId);
+            int result = this.insertSynArchives(device);
+
+
+            Building building = buildingMapper.getBuilding(device.getBuildingId());
+            //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.setFloor(String.valueOf(device.getFloor()));
+            deviceDimension.setDevice(device.getDeviceNo());
+            deviceDimension.setCustomer(String.valueOf(device.getCustomerId()));
+            deviceDimension.setStatus(1);
+            deviceDimension.setCreateBy("admin");
+            deviceDimension.setUpdateBy("admin");
+            deviceDimension.setDateCreate(LocalDateTime.now());
+            deviceDimension.setDateUpdate(LocalDateTime.now());
+
+            deviceDimensionMapper.insertSelective(deviceDimension);
+            succ++;
+            log.info("end addDevice,result = " + result);
+        }
+        String msg = "";
+        if(fail >0){
+            msg = "同步档案信息成功【"+succ+"】条,失败【"+fail+"】条,失败原因:"+failMsg+"";
+        }else{
+            msg = "同步档案信息成功【"+succ+"】条";
+        }
+        log.info("synArchives,result = "+msg);
+        return msg;
+    }
+
     @Override
     @Transactional
     public void edit(DeviceDataDto deviceDataDto) {
@@ -1142,40 +1240,40 @@ public  class DeviceServiceImpl implements DeviceService {
     }
 
     @Override
-	public int countDeviceNumber() {
-		Device param = new Device();
-		List<Integer>  statusList = new ArrayList<Integer>(); 
-		statusList.add(1); // 正常
-		statusList.add(2); // 故障
-		statusList.add(4); // 预警
-		param.setDeviceStatusList(statusList);
-		return deviceMapper.countDevice(param);
-	}
-
-	@Override
-	public List<DeviceDto> getDeviceList(int pageNum, int pageSize) {
-		Device param = new Device();
-		List<Integer>  statusList = new ArrayList<Integer>(); 
-		statusList.add(1); // 正常
-		statusList.add(2); // 故障
-		statusList.add(4); // 预警
-		param.setDeviceStatusList(statusList);
-		return deviceMapper.getDeviceList(param, pageNum, pageSize);
-	}
-
-	@Override
-	public DeviceDto getDeviceLastReceiveTime(Long deviceId) {
-		
-		return null;
-	}
-	@Override
-	public Pagination<DeviceDto> simpleQueryDeviceList(Integer siteId, Integer channelId, String deviceNo,
-			String waterMeterNo, int pageNum, int pageSize) {
-    	LoginUser loginUser = UserUtil.getCurrentUser();
+    public int countDeviceNumber() {
+        Device param = new Device();
+        List<Integer>  statusList = new ArrayList<Integer>();
+        statusList.add(1); // 正常
+        statusList.add(2); // 故障
+        statusList.add(4); // 预警
+        param.setDeviceStatusList(statusList);
+        return deviceMapper.countDevice(param);
+    }
+
+    @Override
+    public List<DeviceDto> getDeviceList(int pageNum, int pageSize) {
+        Device param = new Device();
+        List<Integer>  statusList = new ArrayList<Integer>();
+        statusList.add(1); // 正常
+        statusList.add(2); // 故障
+        statusList.add(4); // 预警
+        param.setDeviceStatusList(statusList);
+        return deviceMapper.getDeviceList(param, pageNum, pageSize);
+    }
+
+    @Override
+    public DeviceDto getDeviceLastReceiveTime(Long deviceId) {
+
+        return null;
+    }
+    @Override
+    public Pagination<DeviceDto> simpleQueryDeviceList(Integer siteId, Integer channelId, String deviceNo,
+                                                       String waterMeterNo, int pageNum, int pageSize) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
         PageHelper.startPage(pageNum, pageSize);
         List<DeviceDto> list =  deviceMapper.queryDeviceByNo(siteId,channelId,deviceNo,waterMeterNo,UserUtil.getCurrentSiteProgramItems(loginUser));
-		return new Pagination<>(list);
-	}
+        return new Pagination<>(list);
+    }
     @Override
     public Device deviceDetail(Long deviceId) {
         Device device = deviceMapper.findByDeviceId(deviceId);
@@ -1207,8 +1305,8 @@ public  class DeviceServiceImpl implements DeviceService {
 
     @Override
     public List<Device> findByAccountId(BigInteger accountId) {
-       List<Device> result = deviceMapper.findByAccountId(accountId);
-       return  result;
+        List<Device> result = deviceMapper.findByAccountId(accountId);
+        return  result;
     }
 
     @Override