فهرست منبع

开关阀门BUG

lin 4 سال پیش
والد
کامیت
c25d44cca2

+ 1 - 2
smart-city-platform/src/main/java/com/bz/smart_city/controller/DeviceController.java

@@ -7,7 +7,6 @@ import com.bz.smart_city.commom.util.UserUtil;
 import com.bz.smart_city.dto.*;
 import com.bz.smart_city.dto.udip.CommandRspNotifyResult;
 import com.bz.smart_city.entity.Device;
-import com.bz.smart_city.entity.WaterRelatedDevice;
 import com.bz.smart_city.service.BuildingService;
 import com.bz.smart_city.service.DeviceService;
 import com.bz.smart_city.service.WaterRelatedDeviceService;
@@ -355,7 +354,7 @@ public class DeviceController {
     public AjaxMessage setValve(
             @ApiParam(value = "设备id", required = true) @RequestParam(required = true) Long deviceId
     ) {
-        deviceService.setValve(deviceId);
+        deviceService.setValve(deviceId, null);
         return new AjaxMessage(ResultStatus.OK);
     }
 

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

@@ -130,7 +130,7 @@ public interface DeviceService{
 
     List<Device> findByAccountId(BigInteger accountId);
 
-    void setValve(Long deviceId);
+    void setValve(Long deviceId, String valve);
 
     String batchRegister(List<Long> deviceIds);
 

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

@@ -1,9 +1,7 @@
 package com.bz.smart_city.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.bz.smart_city.commom.constant.DeviceStatusEnum;
 import com.bz.smart_city.commom.exception.ServiceException;
 import com.bz.smart_city.commom.model.Pagination;
 import com.bz.smart_city.commom.model.ResultStatus;
@@ -1352,20 +1350,48 @@ public  class DeviceServiceImpl implements DeviceService {
     }
 
     @Override
-    public void setValve(Long deviceId) {
+    @Transactional
+    public void setValve(Long deviceId, String valve) {
         Device device = deviceMapper.findByDeviceId(deviceId);
         DeviceTypeDto deviceTypeDto = deviceTypeMapper.getById(device.getDeviceType());
         WaterMeterErrorDays waterMeterErrorDays = waterMeterErrorDaysMapper.findByDeviceId(deviceId);
         String sendValveStatus = "0";
 
-        if(waterMeterErrorDays != null){
-            if (waterMeterErrorDays.getValveButtonStatus() != null) {
-                if(waterMeterErrorDays.getValveButtonStatus()== 0){
-                    sendValveStatus = "1";
+        if (valve != null) {
+            sendValveStatus = valve;
+        }else {
+            if(waterMeterErrorDays != null){
+                if (waterMeterErrorDays.getValveButtonStatus() != null) {
+                    if(waterMeterErrorDays.getValveButtonStatus()== 0){
+                        sendValveStatus = "1";
+                    }
                 }
             }
+
+            //更新按钮阀门状态
+            WaterMeterErrorDays waterMeterErrorDayUpdate = new WaterMeterErrorDays();
+            waterMeterErrorDayUpdate.setDeviceId(deviceId);
+            if (waterMeterErrorDays != null) {
+
+                if (waterMeterErrorDays.getValveButtonStatus() != null) {
+
+                    if(waterMeterErrorDays.getValveButtonStatus()== 1){
+                        waterMeterErrorDayUpdate.setValveButtonStatus(0);
+                    }else {
+                        waterMeterErrorDayUpdate.setValveButtonStatus(1);
+                    }
+                }else {
+                    waterMeterErrorDayUpdate.setValveButtonStatus(0);
+                }
+                waterMeterErrorDaysMapper.updateByPrimaryKeySelective(waterMeterErrorDayUpdate);
+            }else {
+                waterMeterErrorDayUpdate.setValveButtonStatus(0);
+                waterMeterErrorDayUpdate.setStatus(1);
+                waterMeterErrorDaysMapper.insert(waterMeterErrorDayUpdate);
+            }
         }
 
+
         ValveCommandRequestDTO valveCommandRequest = new ValveCommandRequestDTO();
         valveCommandRequest.setValveStatus(sendValveStatus);
 
@@ -1417,31 +1443,6 @@ public  class DeviceServiceImpl implements DeviceService {
             udipEtlDataCommandService.defaultCommandSend(device.getUdipId(),valveCommandRequest);
         }
 
-
-
-
-
-        //3、更新按钮阀门状态
-        WaterMeterErrorDays waterMeterErrorDayUpdate = new WaterMeterErrorDays();
-        waterMeterErrorDayUpdate.setDeviceId(deviceId);
-        if (waterMeterErrorDays != null) {
-
-            if (waterMeterErrorDays.getValveButtonStatus() != null) {
-
-                if(waterMeterErrorDays.getValveButtonStatus()== 1){
-                    waterMeterErrorDayUpdate.setValveButtonStatus(0);
-                }else {
-                    waterMeterErrorDayUpdate.setValveButtonStatus(1);
-                }
-            }else {
-                waterMeterErrorDayUpdate.setValveButtonStatus(0);
-            }
-            waterMeterErrorDaysMapper.updateByPrimaryKeySelective(waterMeterErrorDayUpdate);
-        }else {
-            waterMeterErrorDayUpdate.setValveButtonStatus(0);
-            waterMeterErrorDayUpdate.setStatus(1);
-            waterMeterErrorDaysMapper.insert(waterMeterErrorDayUpdate);
-        }
     }
 
     @Override

+ 1 - 1
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/ValveServiceImpl.java

@@ -75,7 +75,7 @@ public class ValveServiceImpl implements ValveService {
         if (list.size() > 1) {
             throw new ServiceException(-900,"该水表表号出现重复");
         }
-        deviceService.setValve(list.get(0));
+        deviceService.setValve(list.get(0),result.getValve());
         log.info("end  valveControl");
     }
 }