diff --git a/config/application.yml b/config/application.yml
index f5701a5..1a9cf3b 100644
--- a/config/application.yml
+++ b/config/application.yml
@@ -175,13 +175,17 @@ eeid:
 eeUrl:
   #电表充值路径
   #  rechargeDevicesUrl: "http://10.5.10.102:8000/api/emcs/rechargeDevices"
-  rechargeDevicesUrl: "http://192.168.1.7:18080/api/emcs/rechargeDevices"
+  rechargeDevicesUrl: "http://192.168.1.199:18080/api/emcs/rechargeDevices"
   #获取电表实时数据/余额
   #  electricityBanlanceUrl: "http://10.5.10.102:8000/api/emcs/getEnergyInfoForRealTime"
-  electricityBanlanceUrl: "http://192.168.1.7:18080/api/emcs/getEnergyInfoForRealTime"
+  electricityBanlanceUrl: "http://192.168.1.199:18080/api/emcs/getEnergyInfoForRealTime"
   #获取设备跟公寓信息
   #  getRoomAndDeviceUrl: "http://10.5.10.102:8000/api/emcs/getRoomAndDevice"
-  getRoomAndDeviceUrl: "http://192.168.1.7:18080/api/emcs/getRoomAndDevice"
+  getRoomAndDeviceUrl: "http://192.168.1.199:18080/api/emcs/getRoomAndDevice"
+  #电表送电 1送电 2断电
+  #  remoteControlDevices: "http://10.5.10.102:8000/api/emcs/remoteControlDevices"
+  remoteControlDevices: "http://192.168.1.199:18080/api/emcs/remoteControlDevices"
+
 payInfo:
   #商户代码
   merchantid: "105001453995827"
diff --git a/src/main/java/com/sunyo/energy/location/service/imp/ElectricityMeterServiceImp.java b/src/main/java/com/sunyo/energy/location/service/imp/ElectricityMeterServiceImp.java
index 4065e32..3861ed2 100644
--- a/src/main/java/com/sunyo/energy/location/service/imp/ElectricityMeterServiceImp.java
+++ b/src/main/java/com/sunyo/energy/location/service/imp/ElectricityMeterServiceImp.java
@@ -51,11 +51,9 @@ public class ElectricityMeterServiceImp implements ElectricityMeterService {
      */
     @Value("${eeUrl.rechargeDevicesUrl}")
     private String rechargeDevicesUrl;
-    /**
-     * 获取设备跟公寓信息
-     */
-    @Value("${eeUrl.getRoomAndDeviceUrl}")
-    private String getRoomAndDeviceUrl;
+
+    @Value("${eeUrl.remoteControlDevices}")
+    private String remoteControlDevices;
 
     /**
      * 实施获取电表数据
@@ -111,6 +109,16 @@ public class ElectricityMeterServiceImp implements ElectricityMeterService {
             }
             if ("0".equals(rechargeDevicesResult.getErrcode()) && message == true) {
                 log.info("电表充值成功,充值额度:{}", money);
+                ElectricityMeter energyInfoForRealTime = getEnergyInfoForRealTime(deviceId);
+                if (energyInfoForRealTime.getBalance() != null){
+                    int i = energyInfoForRealTime.getBalance().compareTo(BigDecimal.ZERO);
+                    if (i > 0){
+                        Map<String, Object> map = new HashMap<>();
+                        map.put("deviceId", deviceId);
+                        map.put("action", "1");
+                        HttpsUtils.sendPost(remoteControlDevices, map);
+                    }
+                }
                 return 1;
             } else {
                 log.info("电表充值失败,充值额度:{}", money);
diff --git a/src/main/java/com/sunyo/energy/location/service/imp/LocationServiceImp.java b/src/main/java/com/sunyo/energy/location/service/imp/LocationServiceImp.java
index a830658..0e963cb 100644
--- a/src/main/java/com/sunyo/energy/location/service/imp/LocationServiceImp.java
+++ b/src/main/java/com/sunyo/energy/location/service/imp/LocationServiceImp.java
@@ -5,6 +5,7 @@ import com.sunyo.energy.location.model.ElectricityMeter;
 import com.sunyo.energy.location.model.WaterMeter;
 import com.sunyo.energy.location.service.ElectricityMeterService;
 import com.sunyo.energy.location.service.LocationService;
+import com.sunyo.energy.location.service.WaterMeterService;
 import com.sunyo.energy.location.utils.AllUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -25,6 +26,9 @@ public class LocationServiceImp implements LocationService {
     @Autowired
     ElectricityMeterService electricityMeterService;
 
+    @Autowired
+    WaterMeterService waterMeterService;
+
     @Override
     public List userPayList(String roomNumber) {
 
@@ -38,31 +42,19 @@ public class LocationServiceImp implements LocationService {
                 // 查询房间号 水表本地查询list
                 Map<String, Object> thisLocalityWaterMap = locationMapper.userPayList(roomNumber);
                 Map<String, Object> distanceWaterMap = new HashMap<>();
-                // 是否为null  为null则去线上查询
-//                if (thisLocalityWaterMap != null) {
-//                    if (!StringUtils.isEmpty(thisLocalityWaterMap.get("wmSacc").toString()) && !StringUtils.isEmpty(thisLocalityWaterMap.get("wmLacc").toString())) {
-//                        // 计算剩余量  充值量 减去 消费量 参数1 减去 参数2
-//                        String subtraction = AllUtils.nubmerSubtraction(thisLocalityWaterMap.get("wmSacc").toString(), thisLocalityWaterMap.get("wmLacc").toString());
-//                        // 余量
-//                        thisLocalityWaterMap.put("subtraction", subtraction);
-//                    }
-//                    list.add(thisLocalityWaterMap);
-//                } else {
-                    // 查询该房间号的水表编号
-                    String wmId = locationMapper.findWmId(roomNumber);
-                    if (!"".equals(wmId)) {
-                        Map<String, Object> waterMaps = new HashMap<>();
-                        WaterMeterServiceImp waterMeterServiceImp = new WaterMeterServiceImp();
-                        WaterMeter realTime = waterMeterServiceImp.findRealTime(wmId);
-                        String subtraction = AllUtils.nubmerSubtraction(realTime.getWmSacc(), realTime.getWmLacc());
-                        distanceWaterMap.put("subtraction", subtraction);
-                        distanceWaterMap.put("wmSacc", realTime.getWmSacc());
-                        distanceWaterMap.put("wmFmstate", realTime.getWmFmstate());
-                        distanceWaterMap.put("wmLacc", realTime.getWmLacc());
-                        distanceWaterMap.put("wmId", wmId);
-                        list.add(distanceWaterMap);
-                    }
-//                }
+                // 查询该房间号的水表编号
+                String wmId = locationMapper.findWmId(roomNumber);
+                if (!"".equals(wmId)) {
+                    Map<String, Object> waterMaps = new HashMap<>();
+                    WaterMeter realTime = waterMeterService.findRealTime(wmId);
+                    String subtraction = AllUtils.nubmerSubtraction(realTime.getWmSacc(), realTime.getWmLacc());
+                    distanceWaterMap.put("subtraction", subtraction);
+                    distanceWaterMap.put("wmSacc", realTime.getWmSacc());
+                    distanceWaterMap.put("wmFmstate", realTime.getWmFmstate());
+                    distanceWaterMap.put("wmLacc", realTime.getWmLacc());
+                    distanceWaterMap.put("wmId", wmId);
+                    list.add(distanceWaterMap);
+                }
                 /**
                  * 电费查询  通过房间号查询设备id
                  */
diff --git a/src/main/java/com/sunyo/energy/location/service/imp/WaterMeterServiceImp.java b/src/main/java/com/sunyo/energy/location/service/imp/WaterMeterServiceImp.java
index 63ce6d4..d136ea4 100644
--- a/src/main/java/com/sunyo/energy/location/service/imp/WaterMeterServiceImp.java
+++ b/src/main/java/com/sunyo/energy/location/service/imp/WaterMeterServiceImp.java
@@ -6,9 +6,11 @@ import com.sunyo.energy.location.controller.response.ResultJson;
 import com.sunyo.energy.location.dao.LocationMapper;
 import com.sunyo.energy.location.dao.PayRecordsMapper;
 import com.sunyo.energy.location.dao.WaterMeterMapper;
+import com.sunyo.energy.location.dao.WaterMeterSaccMapper;
 import com.sunyo.energy.location.demopay.QrDemo;
 import com.sunyo.energy.location.model.PayRecords;
 import com.sunyo.energy.location.model.WaterMeter;
+import com.sunyo.energy.location.model.WaterMeterSacc;
 import com.sunyo.energy.location.service.WaterMeterService;
 import com.sunyo.energy.location.utils.AllUtils;
 import com.sunyo.energy.location.utils.HttpsUtils;
@@ -37,6 +39,9 @@ public class WaterMeterServiceImp implements WaterMeterService {
     @Autowired
     private LocationMapper locationMapper;
 
+    @Autowired
+    private WaterMeterSaccMapper waterMeterSaccMapper;
+
     @Value("${payInfo.merchantid}")
     private  String MERCHANTIDS;
 
@@ -124,6 +129,10 @@ public class WaterMeterServiceImp implements WaterMeterService {
                     waterMeter.setWmVoltage(map.get("wm_voltage").toString());
                 }
             }
+            //查询累计充值量
+            String wmIds = AllUtils.wmIdUtils(wmId);
+            WaterMeterSacc waterMeterSacc = waterMeterSaccMapper.selectByPrimaryKey(wmIds);
+            waterMeter.setWmSacc(String.valueOf(waterMeterSacc.getWmSacc()));
             return waterMeter;
         } catch (Exception e) {
             e.printStackTrace();
@@ -146,9 +155,22 @@ public class WaterMeterServiceImp implements WaterMeterService {
             // 得到请求接口 返回值  和总水量
             Map<String, Object> map = allWater(payFees, wmId);
             Map hashMap = JSON.parseObject(map.get("status").toString(), HashMap.class);
+            /**
+             * 外部充值水表成功
+             */
             if ("0".equals(hashMap.get("state").toString())) {
-                int update = waterMeterMapper.update(wmId, map.get("allSacc").toString());
-                resultJson.setCode("200");
+                WaterMeterSacc waterMeterSacc = new WaterMeterSacc();
+                waterMeterSacc.setWmId(AllUtils.wmIdUtils(wmId));
+                waterMeterSacc.setWmSacc(new BigDecimal(String.valueOf(map.get("Add_sacc"))));
+                /**
+                 * 修改本地累计充值量
+                 */
+                int i = waterMeterSaccMapper.updateByPrimaryKeySelective(waterMeterSacc);
+                if (i > 0){
+                    resultJson.setCode("200");
+                }else {
+                    resultJson.setCode("203");
+                }
             } else {
                 resultJson.setCode("203");
             }
@@ -234,13 +256,14 @@ public class WaterMeterServiceImp implements WaterMeterService {
         // 充值最后立方水数值
         String s = AllUtils.nubmerDivision(payFees);
         // 查询累计充值量
-        WaterMeter realTime = findRealTime(wmId);
-        String allSacc = AllUtils.nubmerAdd(s, realTime.getWmSacc());
+        WaterMeterSacc waterMeterSacc = waterMeterSaccMapper.selectByPrimaryKey(AllUtils.wmIdUtils(wmId));
+        String allSacc = AllUtils.nubmerAdd(s, waterMeterSacc.getWmSacc());
         Map<String, Object> datas = new HashMap<>();
         datas.put("MtId", wmId);
         datas.put("Add_sacc", allSacc);
         datas.put("Add_addmode", "2");
         String status = HttpsUtils.httpRequest(payUrl, datas);
+
         datas.put("allSacc", allSacc);
         datas.put("status", status);
 
diff --git a/src/main/java/com/sunyo/energy/location/utils/AllUtils.java b/src/main/java/com/sunyo/energy/location/utils/AllUtils.java
index ec5108a..08ef567 100644
--- a/src/main/java/com/sunyo/energy/location/utils/AllUtils.java
+++ b/src/main/java/com/sunyo/energy/location/utils/AllUtils.java
@@ -35,11 +35,10 @@ public class AllUtils {
 
 
     //数字相加 参数1加参数2
-    public static String nubmerAdd(String oneWmSacc, String s) {
+    public static String nubmerAdd(String oneWmSacc, BigDecimal s) {
 
         BigDecimal bigDecimal = new BigDecimal(oneWmSacc);
-        BigDecimal bigDecimal1 = new BigDecimal(s);
-        String s1 = bigDecimal.add(bigDecimal1).toString();
+        String s1 = bigDecimal.add(s).toString();
         return s1;
     }
 
@@ -56,5 +55,22 @@ public class AllUtils {
         return merchantId + result;
     }
 
+    /**
+     * 处理水表编号加 '-' 问题
+     * @param replace 水表编号
+     * @return
+     */
+    public static String wmIdUtils(String replace) {
+        if (!replace.contains("-")){
+            String regex = "(.{2})";
+            replace = replace.replaceAll(regex, "$1-");
+            String substring = replace.substring(0, replace.length() - 1);
+
+            return substring;
+        }else {
+            return  replace;
+        }
+
+    }
 
 }