From f7bee61a56b15b769fc29d21e9e1856cc147d8d7 Mon Sep 17 00:00:00 2001 From: fengjignqi <15192412330@163.com> Date: Wed, 27 May 2026 15:47:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=8E=92=E7=A8=8B=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ckkj/water/history/StatisticFragment.java | 15 +++ .../java/com/ckkj/water/network/Request.java | 9 ++ .../ckkj/water/plan/AddWaterPlanActivity.java | 15 +++ .../ckkj/water/plan/BindDeviceFragment.java | 16 ++++ .../ckkj/water/plan/PlanDetailActivity.java | 96 ++++++++++++++++++- .../ckkj/water/plan/WaterConfigFragment.java | 15 +++ .../ckkj/water/plan/WaterPlanFragment.java | 15 +++ .../plan/adapter/PlanDetailDeviceAdapter.java | 47 ++++----- .../plan/adapter/PlanDetailTimeAdapter.java | 2 +- .../plan/entity/WaterPlanWeekEntity.java | 4 +- .../water/plan/mvp/WaterPlanContract.java | 11 +++ .../ckkj/water/plan/mvp/WaterPlanImpl.java | 75 +++++++++++++++ .../water/plan/mvp/WaterPlanPresenter.java | 69 ++++++++++++- app/src/main/res/values/strings.xml | 3 + 14 files changed, 360 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/com/ckkj/water/history/StatisticFragment.java b/app/src/main/java/com/ckkj/water/history/StatisticFragment.java index b88ecfa..1aaa9f6 100644 --- a/app/src/main/java/com/ckkj/water/history/StatisticFragment.java +++ b/app/src/main/java/com/ckkj/water/history/StatisticFragment.java @@ -59,6 +59,11 @@ public class StatisticFragment extends BaseFragment planBindDevice(@HeaderMap Map headMap, @Body RequestBody requestBody); + //更新排程状态 + @PUT("app/v1/editScheduleStatus") + Observable> updateScheduleStatus(@HeaderMap Map headMap, @Body RequestBody requestBody); + + //解绑信息 + @DELETE("app/v1/deleteschedule/{ids}") + Observable deletePlanById(@HeaderMap Map headMap, @Path("ids") String id); + + //解绑信息 @DELETE("app/v1/deleteDevice/{ids}") Observable unBindDevice(@HeaderMap Map headMap, @Path("ids") String id); diff --git a/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java b/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java index 3873a7a..3ddbbbf 100644 --- a/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java +++ b/app/src/main/java/com/ckkj/water/plan/AddWaterPlanActivity.java @@ -207,6 +207,11 @@ public class AddWaterPlanActivity extends BaseActivity selectedPositions = mAdapter.getSelectedPositions(); // List selected = new ArrayList<>(); @@ -164,6 +175,11 @@ public class BindDeviceFragment extends BaseFragment mList = new ArrayList<>(); @Override @@ -59,14 +63,16 @@ public class PlanDetailActivity extends BaseActivity deviceList = new ArrayList<>(); + deviceAdapter = new PlanDetailDeviceAdapter(R.layout.plan_detail_bind_device_item,deviceList); + viewBinding.rvBindDevices.setAdapter(deviceAdapter); } private void initListener() { setClick(viewBinding.includedTitle.imgBack); setClick(viewBinding.btnEdit); setClick(viewBinding.btnDelete); + setClick(viewBinding.switchButton); } private void setClick(View view) { @@ -79,7 +85,7 @@ public class PlanDetailActivity extends BaseActivity { -// -// public PlanDetailDeviceAdapter(int layoutResId, @Nullable List data) { -// super(layoutResId, data); -// } -// -// @Override -// protected void convert(BaseViewHolder helper, WaterPlanWeekEntity.DeviceEntity item) { -// helper.setText(R.id.tv_device_name,item.getDeviceName()); -// helper.setText(R.id.tv_device_serial,item.getDeviceCode()); -// } -//} +package com.ckkj.water.plan.adapter; + +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 com.ckkj.water.plan.entity.WaterPlanWeekEntity; + +import java.util.List; + +public class PlanDetailDeviceAdapter extends BaseQuickAdapter { + + public PlanDetailDeviceAdapter(int layoutResId, @Nullable List data) { + super(layoutResId, data); + } + + @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()); + } +} diff --git a/app/src/main/java/com/ckkj/water/plan/adapter/PlanDetailTimeAdapter.java b/app/src/main/java/com/ckkj/water/plan/adapter/PlanDetailTimeAdapter.java index 2476506..9bfa80b 100644 --- a/app/src/main/java/com/ckkj/water/plan/adapter/PlanDetailTimeAdapter.java +++ b/app/src/main/java/com/ckkj/water/plan/adapter/PlanDetailTimeAdapter.java @@ -18,7 +18,7 @@ public class PlanDetailTimeAdapter extends BaseQuickAdapter deviceIds; private String status = "1"; private List details; diff --git a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java index f54128f..88eccbe 100644 --- a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java +++ b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanContract.java @@ -2,6 +2,7 @@ package com.ckkj.water.plan.mvp; import com.ckkj.water.base.IView; import com.ckkj.water.index.entity.WaterDeviceEntity; +import com.ckkj.water.network.BaseBean; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import org.json.JSONObject; @@ -21,12 +22,16 @@ public class WaterPlanContract { void saveConfig(JSONObject json,CallBack callBack); //更新排程 void updateConfig(JSONObject json,CallBack callBack); + //更新排程状态 + void updatePlanStatus(JSONObject json, CallBack callBack); //查询排程可绑定的设备列表 void getPlanBindDeviceList(Map map,CallBack callBack); //查询排程详情 void getPlanDetailInfo(Map map,CallBack callBack); //排程绑定设备 void planBindDevice(JSONObject json,CallBack callBack); + //删除排程 + void deletePlan(String id,CallBack callBack); } public interface WaterPlanView extends IView { @@ -36,9 +41,15 @@ public class WaterPlanContract { void saveConfigSuccess(WaterPlanWeekEntity entity); //排程更新成功 void updateConfigSuccess(WaterPlanWeekEntity entity); + //更新排程状态成功 + void updatePlanStatusSuccess(BaseBean bean, String status); //获取排程详情 void getPlanDetailInfo(WaterPlanWeekEntity entity); //查询到可绑定设备列表 void getPlanBindDeviceList(WaterDeviceEntity bean); + //排程绑定设备成功 + void planBindDeviceSuccess(BaseBean bean); + //删除排程成功 + void deletePlanSuccess(BaseBean bean); } } diff --git a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java index e949c9a..fa16b72 100644 --- a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java +++ b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanImpl.java @@ -132,6 +132,41 @@ public class WaterPlanImpl implements WaterPlanContract.DataModel{ } } + /** + * 更新排程状态 + * @param callBack + */ + @Override + public void updatePlanStatus(JSONObject json, WaterPlanContract.CallBack callBack) { + NetWorkManager.getRequest().updateScheduleStatus(NetWorkManager.getToken(),NetWorkManager.toRequestBody(json)) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + } + + @Override + public void onNext(@NonNull BaseBean bean) { + if (bean.getCode() == 200) { + callBack.success(bean.getData(), 0); + } else { + callBack.fail(bean.getMessage()); + } + } + + @Override + public void onError(@NonNull Throwable e) { + callBack.fail(e.getMessage()); + } + + @Override + public void onComplete() { + } + }); + } + /** * 查询可绑定排程的设备列表 * @param map @@ -231,4 +266,44 @@ public class WaterPlanImpl implements WaterPlanContract.DataModel{ e.printStackTrace(); } } + + /** + * 删除排程 + * @param id + * @param callBack + */ + @Override + public void deletePlan(String id, WaterPlanContract.CallBack callBack) { + try { + NetWorkManager.getRequest().deletePlanById(NetWorkManager.getToken(), id) + .subscribeOn(Schedulers.io()) + .unsubscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @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() { + } + }); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java index 55ce2ce..f9e0a97 100644 --- a/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java +++ b/app/src/main/java/com/ckkj/water/plan/mvp/WaterPlanPresenter.java @@ -2,6 +2,7 @@ package com.ckkj.water.plan.mvp; import com.ckkj.water.base.BasePresenter; import com.ckkj.water.index.entity.WaterDeviceEntity; +import com.ckkj.water.network.BaseBean; import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import org.json.JSONArray; @@ -188,12 +189,18 @@ public class WaterPlanPresenter extends BasePresenter() { + // 将逗号分隔的字符串转换为 JSONArray (数字类型) + JSONArray deviceIdArray = new JSONArray(); + String[] idArray = deviceIds.split(","); + for (String id : idArray) { + deviceIdArray.put(id); + } + json.put("deviceIds", deviceIdArray); + impl.planBindDevice(json, new WaterPlanContract.CallBack() { @Override - public void success(WaterPlanWeekEntity msg, int total) { + public void success(BaseBean bean, int total) { if(WaterPlanPresenter.this.getView() != null){ - + WaterPlanPresenter.this.getView().planBindDeviceSuccess(bean); } } @@ -208,4 +215,58 @@ public class WaterPlanPresenter extends BasePresenter() { + @Override + public void success(BaseBean bean, int total) { + if (WaterPlanPresenter.this.getView() != null) { + WaterPlanPresenter.this.getView().updatePlanStatusSuccess(bean,status); + } + } + + @Override + public void fail(String msg) { + if (WaterPlanPresenter.this.getView() != null) { + WaterPlanPresenter.this.getView().showError(msg); + } + } + }); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } + + /** + * 删除排程 + * @param mDetailEntity + */ + public void deletePlan(WaterPlanWeekEntity mDetailEntity) { + impl.deletePlan(mDetailEntity.getId(), new WaterPlanContract.CallBack() { + @Override + public void success(BaseBean bean, int total) { + if(WaterPlanPresenter.this.getView() != null){ + if(WaterPlanPresenter.this.getView() != null){ + WaterPlanPresenter.this.getView().deletePlanSuccess(bean); + } + } + } + + @Override + public void fail(String msg) { + if(WaterPlanPresenter.this.getView() != null){ + WaterPlanPresenter.this.getView().showError( msg); + } + } + }); + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 72e3170..0dd70a7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -97,6 +97,9 @@ 排程名称不能为空 请选择排程日期 请选择要关联的设备 + 确定要删除该排程任务? + 删除成功 + 确定关闭该排程任务? 浇水周期 浇水时长 开始时间