排程解绑设备,添加已关联设备tab
This commit is contained in:
@@ -83,4 +83,9 @@ public class StatisticFragment extends BaseFragment<WaterCountFragmentLayoutBind
|
|||||||
public void deletePlanSuccess(BaseBean bean) {
|
public void deletePlanSuccess(BaseBean bean) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,10 @@ public interface Request {
|
|||||||
@DELETE("app/v1/deleteDevice/{ids}")
|
@DELETE("app/v1/deleteDevice/{ids}")
|
||||||
Observable<BaseBean> unBindDevice(@HeaderMap Map<String,String> headMap, @Path("ids") String id);
|
Observable<BaseBean> unBindDevice(@HeaderMap Map<String,String> headMap, @Path("ids") String id);
|
||||||
|
|
||||||
|
//排程解绑设备
|
||||||
|
@DELETE("app/v1/deleteScheduleDevice")
|
||||||
|
Observable<BaseBean> planUnBindDevice(@HeaderMap Map<String,String> headMap,@QueryMap Map<String, String> map);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,9 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
|||||||
viewBinding.viewpage.post(() -> {
|
viewBinding.viewpage.post(() -> {
|
||||||
WaterConfigFragment_copy configFragment = (WaterConfigFragment_copy) mFragmentList.get(0);
|
WaterConfigFragment_copy configFragment = (WaterConfigFragment_copy) mFragmentList.get(0);
|
||||||
configFragment.setEditEntity(mEditEntity);
|
configFragment.setEditEntity(mEditEntity);
|
||||||
|
|
||||||
|
PlanBoundDeviceFragment boundDeviceFragment = (PlanBoundDeviceFragment) mFragmentList.get(1);
|
||||||
|
boundDeviceFragment.setEditEntity(mEditEntity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -127,6 +130,10 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
|||||||
viewBinding.tvBound.setSelected(true);
|
viewBinding.tvBound.setSelected(true);
|
||||||
viewBinding.tvBind.setSelected(false);
|
viewBinding.tvBind.setSelected(false);
|
||||||
viewBinding.viewpage.setCurrentItem(1);
|
viewBinding.viewpage.setCurrentItem(1);
|
||||||
|
|
||||||
|
// 传递编辑实体给 PlanBoundDeviceFragment
|
||||||
|
PlanBoundDeviceFragment boundDeviceFragment = (PlanBoundDeviceFragment) mFragmentList.get(1);
|
||||||
|
boundDeviceFragment.setEditEntity(mEditEntity);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.tv_bind:
|
case R.id.tv_bind:
|
||||||
@@ -265,5 +272,10 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,6 +149,11 @@ public class BindDeviceFragment extends BaseFragment<PlanBindDeviceLayoutBinding
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// private void syncSelectedDevices() {
|
// private void syncSelectedDevices() {
|
||||||
// Set<Integer> selectedPositions = mAdapter.getSelectedPositions();
|
// Set<Integer> selectedPositions = mAdapter.getSelectedPositions();
|
||||||
// List<WaterPlanWeekEntity.DeviceEntity> selected = new ArrayList<>();
|
// List<WaterPlanWeekEntity.DeviceEntity> selected = new ArrayList<>();
|
||||||
|
|||||||
@@ -1,15 +1,20 @@
|
|||||||
package com.ckkj.water.plan;
|
package com.ckkj.water.plan;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||||
|
import com.ckkj.water.R;
|
||||||
import com.ckkj.water.base.BaseFragment;
|
import com.ckkj.water.base.BaseFragment;
|
||||||
import com.ckkj.water.databinding.PlanBoundDeviceLayoutBinding;
|
import com.ckkj.water.databinding.PlanBoundDeviceLayoutBinding;
|
||||||
import com.ckkj.water.index.entity.WaterDeviceEntity;
|
import com.ckkj.water.index.entity.WaterDeviceEntity;
|
||||||
import com.ckkj.water.network.BaseBean;
|
import com.ckkj.water.network.BaseBean;
|
||||||
|
import com.ckkj.water.plan.adapter.PlanBoundDeviceAdapter;
|
||||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||||
import com.ckkj.water.plan.mvp.WaterPlanContract;
|
import com.ckkj.water.plan.mvp.WaterPlanContract;
|
||||||
import com.ckkj.water.plan.mvp.WaterPlanImpl;
|
import com.ckkj.water.plan.mvp.WaterPlanImpl;
|
||||||
import com.ckkj.water.plan.mvp.WaterPlanPresenter;
|
import com.ckkj.water.plan.mvp.WaterPlanPresenter;
|
||||||
|
import com.ckkj.water.utils.show.ToastUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -20,9 +25,95 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class PlanBoundDeviceFragment extends BaseFragment<PlanBoundDeviceLayoutBinding, WaterPlanPresenter>
|
public class PlanBoundDeviceFragment extends BaseFragment<PlanBoundDeviceLayoutBinding, WaterPlanPresenter>
|
||||||
implements WaterPlanContract.WaterPlanView{
|
implements WaterPlanContract.WaterPlanView{
|
||||||
|
|
||||||
|
private WaterPlanWeekEntity mEditEntity;
|
||||||
|
private PlanBoundDeviceAdapter mAdapter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initData(Bundle state) {
|
public void initData(Bundle state) {
|
||||||
|
// 初始化适配器,如果有数据则设置
|
||||||
|
if (mEditEntity != null && mEditEntity.getDeviceIds() != null) {
|
||||||
|
mAdapter = new PlanBoundDeviceAdapter(mContext, R.layout.plan_bound_device_item, mEditEntity.getDeviceIds());
|
||||||
|
viewBinding.rvDevices.setAdapter(mAdapter);
|
||||||
|
|
||||||
|
// 根据数据状态显示/隐藏视图
|
||||||
|
if (mEditEntity.getDeviceIds().isEmpty()) {
|
||||||
|
viewBinding.linearContent.setVisibility(View.GONE);
|
||||||
|
viewBinding.relNoresult.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
viewBinding.linearContent.setVisibility(View.VISIBLE);
|
||||||
|
viewBinding.relNoresult.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 无数据时显示空状态
|
||||||
|
viewBinding.linearContent.setVisibility(View.GONE);
|
||||||
|
viewBinding.relNoresult.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
if(mAdapter != null){
|
||||||
|
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||||
|
switch (view.getId()){
|
||||||
|
case R.id.img_delete:
|
||||||
|
showDialogtext(null, false, false, "提示",
|
||||||
|
"确定解绑该设备?", "取消", "解绑",
|
||||||
|
new OnDialogClick() {
|
||||||
|
@Override
|
||||||
|
public void onCancelClick() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConfirmClick() {
|
||||||
|
showLoadingDialog();
|
||||||
|
mPresenter.planUnbindDevice(mEditEntity.getId(),
|
||||||
|
mEditEntity.getDeviceIds().get(position).getId(),
|
||||||
|
position);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEditEntity(WaterPlanWeekEntity entity) {
|
||||||
|
this.mEditEntity = entity;
|
||||||
|
// 使用 getView().post() 确保视图已初始化完成
|
||||||
|
if (getView() != null) {
|
||||||
|
getView().post(() -> {
|
||||||
|
if (viewBinding != null) {
|
||||||
|
updateUI();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateUI() {
|
||||||
|
if (viewBinding == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mEditEntity == null || mEditEntity.getDeviceIds() == null) {
|
||||||
|
viewBinding.linearContent.setVisibility(View.GONE);
|
||||||
|
viewBinding.relNoresult.setVisibility(View.VISIBLE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mEditEntity.getDeviceIds().isEmpty()) {
|
||||||
|
viewBinding.linearContent.setVisibility(View.GONE);
|
||||||
|
viewBinding.relNoresult.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
viewBinding.linearContent.setVisibility(View.VISIBLE);
|
||||||
|
viewBinding.relNoresult.setVisibility(View.GONE);
|
||||||
|
if (mAdapter != null) {
|
||||||
|
mAdapter.setNewData(mEditEntity.getDeviceIds());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public WaterPlanWeekEntity getEditEntity() {
|
||||||
|
return mEditEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -70,6 +161,14 @@ public class PlanBoundDeviceFragment extends BaseFragment<PlanBoundDeviceLayoutB
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
hideDialogLoading();
|
||||||
|
ToastUtil.showShort(mContext, "解绑成功");
|
||||||
|
mAdapter.notifyItemRemoved(position);
|
||||||
|
mEditEntity.getDeviceIds().remove(position);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNetChange(int netModel) {
|
public void onNetChange(int netModel) {
|
||||||
|
|
||||||
|
|||||||
@@ -202,6 +202,11 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
|
|||||||
},500);
|
},500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新排程状态成功
|
* 更新排程状态成功
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -382,6 +382,11 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WaterPlanPresenter createPresenter() {
|
public WaterPlanPresenter createPresenter() {
|
||||||
|
|||||||
@@ -677,5 +677,10 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,4 +189,9 @@ public class WaterPlanFragment extends BaseFragment<WaterPlanFragmentBinding, Wa
|
|||||||
public void deletePlanSuccess(BaseBean bean) {
|
public void deletePlanSuccess(BaseBean bean) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDeviceSuccess(BaseBean bean, int position) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.ckkj.water.plan.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||||
|
import com.chad.library.adapter.base.BaseViewHolder;
|
||||||
|
import com.ckkj.water.R;
|
||||||
|
import com.ckkj.water.index.entity.WaterDeviceEntity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author fengxiaoyang
|
||||||
|
* @date 2026/5/29
|
||||||
|
* @description TODO: 描述该类的作用
|
||||||
|
*/
|
||||||
|
public class PlanBoundDeviceAdapter extends BaseQuickAdapter<WaterDeviceEntity, BaseViewHolder> {
|
||||||
|
private Context mContext;
|
||||||
|
public PlanBoundDeviceAdapter(Context context,int layoutResId, @Nullable List<WaterDeviceEntity> data) {
|
||||||
|
super(layoutResId, data);
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void convert(BaseViewHolder helper, WaterDeviceEntity item) {
|
||||||
|
helper.setText(R.id.tv_device_name, item.getDeviceName());
|
||||||
|
helper.setText(R.id.tv_device_serial, item.getDeviceSn());
|
||||||
|
helper.addOnClickListener(R.id.img_delete);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -32,6 +32,8 @@ public class WaterPlanContract {
|
|||||||
void planBindDevice(JSONObject json,CallBack callBack);
|
void planBindDevice(JSONObject json,CallBack callBack);
|
||||||
//删除排程
|
//删除排程
|
||||||
void deletePlan(String id,CallBack callBack);
|
void deletePlan(String id,CallBack callBack);
|
||||||
|
//排程解绑设备
|
||||||
|
void planUnbindDevice(Map<String, String> map,CallBack callBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface WaterPlanView extends IView {
|
public interface WaterPlanView extends IView {
|
||||||
@@ -51,5 +53,7 @@ public class WaterPlanContract {
|
|||||||
void planBindDeviceSuccess(BaseBean bean);
|
void planBindDeviceSuccess(BaseBean bean);
|
||||||
//删除排程成功
|
//删除排程成功
|
||||||
void deletePlanSuccess(BaseBean bean);
|
void deletePlanSuccess(BaseBean bean);
|
||||||
|
//排程解绑设备成功
|
||||||
|
void planUnbindDeviceSuccess(BaseBean bean,int position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -306,4 +306,35 @@ public class WaterPlanImpl implements WaterPlanContract.DataModel{
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void planUnbindDevice(Map<String, String> map, WaterPlanContract.CallBack callBack) {
|
||||||
|
NetWorkManager.getRequest().planUnBindDevice(NetWorkManager.getToken(), map)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.unsubscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Observer<BaseBean>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(@NonNull BaseBean bean) {
|
||||||
|
if (bean.getCode() == 200) {
|
||||||
|
callBack.success(bean,0);
|
||||||
|
} else {
|
||||||
|
callBack.fail(bean.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull Throwable e) {
|
||||||
|
callBack.fail(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -267,9 +267,33 @@ public class WaterPlanPresenter extends BasePresenter<WaterPlanContract.WaterPla
|
|||||||
@Override
|
@Override
|
||||||
public void success(BaseBean bean, int total) {
|
public void success(BaseBean bean, int total) {
|
||||||
if(WaterPlanPresenter.this.getView() != null){
|
if(WaterPlanPresenter.this.getView() != null){
|
||||||
if(WaterPlanPresenter.this.getView() != null){
|
WaterPlanPresenter.this.getView().deletePlanSuccess(bean);
|
||||||
WaterPlanPresenter.this.getView().deletePlanSuccess(bean);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fail(String msg) {
|
||||||
|
if(WaterPlanPresenter.this.getView() != null){
|
||||||
|
WaterPlanPresenter.this.getView().showError( msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排程解绑设备
|
||||||
|
* @param planID
|
||||||
|
* @param deviceID
|
||||||
|
*/
|
||||||
|
public void planUnbindDevice(String planID, String deviceID,int position) {
|
||||||
|
Map<String,String> map = new HashMap<>();
|
||||||
|
map.put("scheduleId",planID);
|
||||||
|
map.put("deviceId",deviceID);
|
||||||
|
impl.planUnbindDevice(map, new WaterPlanContract.CallBack<BaseBean>() {
|
||||||
|
@Override
|
||||||
|
public void success(BaseBean bean, int total) {
|
||||||
|
if(WaterPlanPresenter.this.getView() != null){
|
||||||
|
WaterPlanPresenter.this.getView().planUnbindDeviceSuccess(bean,position);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user