mac
2023-12-28 96ef84e192807b383af7d3f2e5c89f08b359137f
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -111,31 +111,32 @@
    /**
     * 逆变器上传数据到云端(包括:sid,oid)
     *
     * @param mac 设备mac
     * @param homeId 住宅id
     * @param mac    设备mac
     */
    public void uploadDataToCloud(String mac, CloudCallBeak<Boolean> callBeak) {
    public void uploadDataToCloud(String homeId, String mac, CloudCallBeak<Boolean> callBeak) {
        getInverterOidList(mac, new LinkCallBack<List<OidBean>>() {
            @Override
            public void onSuccess(List<OidBean> obj) {
                if (obj == null) {
                    return;
                }
                fullUpdateOid(obj, new CloudCallBeak<Boolean>() {
                fullUpdateOid(homeId, obj, new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        HdlLogLogic.print("上传oid列表到云端成功-->" + homeId + "--->" + mac, true);
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        HdlLogLogic.print("上传oid列表到云端失败-->" + homeId + "--->" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
                    }
                });
            }
            @Override
            public void onError(HDLLinkException e) {
                HdlLogLogic.print("获取逆变器oid列表失败-->" + homeId + "--->" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
            }
        });
@@ -169,7 +170,7 @@
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                    //临时的逻辑,上传oid列表到云端
                    uploadDataToCloud(mac, null);
                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null);
                }
            }
@@ -293,14 +294,75 @@
    /**
     * 全量更新OID
     *
     * @param homeId        住宅id
     * @param oidList       oid列表
     * @param cloudCallBeak 回调update
     */
    public void fullUpdateOid(List<OidBean> oidList, CloudCallBeak<Boolean> cloudCallBeak) {
    public void fullUpdateOid(String homeId, List<OidBean> oidList, CloudCallBeak<Boolean> cloudCallBeak) {
        if (oidList == null || oidList.size() == 0) {
            HdlLogLogic.print("oid列表为空,无法全量更新oid到云端--->", true);
            return;
        }
        String requestUrl = HttpApi.POST_Device_Oid;
        JsonObject json = new JsonObject();
        json.addProperty("operationSource", "PROGRAM_ENERGY");//
        json.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
        json.addProperty("homeId", homeId);
        JsonArray jsonArray = new JsonArray();
        for (int i = 0; i < oidList.size(); i++) {
            OidBean oidBean = oidList.get(i);
            JsonObject jsonObject = new JsonObject();
            jsonObject.addProperty("protocolType", oidBean.getProtocolType());
            jsonObject.addProperty("deviceType", oidBean.getDeviceType());
            jsonObject.addProperty("mac", oidBean.getDevice_mac());
            jsonObject.addProperty("oid", oidBean.getOid());
            jsonObject.addProperty("device_name", oidBean.getDevice_name());
            jsonObject.addProperty("device_model", oidBean.getDevice_model());
            jsonObject.addProperty("addresses", oidBean.getAddresses());
            jsonObject.addProperty("parentOid", oidBean.getParentOid());
            jsonArray.add(jsonObject);
        }
        json.add("devices", jsonArray);
        // json.addProperty("zoneType", "password");//区域
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String str) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                }
                HdlLogLogic.print("全量更新oid到云端成功--->", true);
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
                HdlLogLogic.print("全量更新oid到云端失败--->" + e.getMsg() + "(" + e.getCode() + ")", true);
            }
        });
    }
    /**
     * (oid)增量添加
     *
     * @param homeId        住宅id
     * @param oidList       oid列表
     * @param cloudCallBeak 回调update
     */
    public void updateOidAdd(String homeId, List<OidBean> oidList, CloudCallBeak<Boolean> cloudCallBeak) {
        if (oidList == null || oidList.size() == 0) {
            HdlLogLogic.print("oid列表为空,无法增量添加oid到云端--->", true);
            return;
        }
        String requestUrl = HttpApi.POST_Device_IncrAdd;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
        JsonArray jsonArray = new JsonArray();
        for (int i = 0; i < oidList.size(); i++) {
            OidBean oidBean = oidList.get(i);
@@ -326,7 +388,7 @@
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                }
                HdlLogLogic.print("增量添加oid到云端成功--->");
            }
            @Override
@@ -334,6 +396,7 @@
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
                HdlLogLogic.print("增量添加oid到云端失败--->" + e.getMsg() + "(" + e.getCode() + ")", true);
            }
        });