新增排程接口

This commit is contained in:
fengjignqi
2026-05-25 15:43:34 +08:00
parent e6e3f755d0
commit 6c6d211701
12 changed files with 388 additions and 51 deletions

View File

@@ -35,8 +35,9 @@ import java.util.List;
public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutBinding, WaterPlanPresenter>
implements WaterPlanContract.WaterPlanView {
private List<WaterPlanWeekEntity.DetailsBean> mConfigList = new ArrayList<>();
//用户本地操作排程时的数据
private WaterPlanWeekEntity mConfigEntity;
//排程接口新增成功之后,接口返回的该排程在远端的数据信息
private WaterPlanWeekEntity mRemoteConfigEntity;
private WaterPlanWeekAdapter mWeekAdapter;
private String mPlanName = "";
@@ -114,8 +115,20 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
public void commitConfig(){
if(checkConfigFinish()){
if (!checkConfigFinish()) {
return;
}
// mRemoteConfigEntity 为空,说明是新增场景
if (mRemoteConfigEntity == null) {
mPresenter.saveConfig(mConfigEntity);
return;
}
// mRemoteConfigEntity 不为空,说明是更新场景
if (isConfigChanged()) {
// TODO: 触发更新接口,调用 mPresenter.updateConfig(mConfigEntity)
mPresenter.updateConfig(mConfigEntity);
} else {
ToastUtil.showShort(mContext, "配置没有变化,无需保存");
}
}
@@ -176,7 +189,40 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
view.setOnClickListener(this::onClick);
}
/**
* 比较本地配置和远程配置是否有变化
* @return true 表示有变化false 表示无变化
*/
public boolean isConfigChanged() {
if (mRemoteConfigEntity == null || mRemoteConfigEntity.getDetails() == null) {
return true;
}
// 比对排程名称
if (!equalsString(mConfigEntity.getName(), mRemoteConfigEntity.getName())) {
return true;
}
List<WaterPlanWeekEntity.DetailsBean> localDetails = mConfigEntity.getDetails();
List<WaterPlanWeekEntity.DetailsBean> remoteDetails = mRemoteConfigEntity.getDetails();
if (localDetails == null || localDetails.size() != remoteDetails.size()) {
return true;
}
for (int i = 0; i < localDetails.size(); i++) {
WaterPlanWeekEntity.DetailsBean local = localDetails.get(i);
WaterPlanWeekEntity.DetailsBean remote = remoteDetails.get(i);
if (!equalsString(local.getStatus(), remote.getStatus())
|| !equalsString(local.getStartTime(),ZYTimeUtils.timeWithoutMillis(remote.getStartTime()))
|| local.getDurationMin() != remote.getDurationMin()) {
return true;
}
}
return false;
}
private boolean equalsString(String s1, String s2) {
if (s1 == null && s2 == null) return true;
if (s1 == null || s2 == null) return false;
return s1.equals(s2);
}
/**
* 检查配置信息是否完成
@@ -216,10 +262,23 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
return true;
}
@Override
public void getWaterConfigListSuccess(List<WaterPlanWeekEntity> list,int total) {
}
@Override
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
ToastUtil.showShort(mContext, "排程新增成功");
isConfigSave = true;
// 把接口返回的 ID 设置到 mConfigEntity便于后续更新操作
mConfigEntity.setId(entity.getId());
// 把 details 中每个 bean 的 id 也设置到 mConfigEntity便于后续更新操作
if (entity.getDetails() != null && mConfigEntity.getDetails() != null) {
for (int i = 0; i < entity.getDetails().size() && i < mConfigEntity.getDetails().size(); i++) {
mConfigEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId());
}
}
//接口请求之后返回的数据,方便后面做对比
mRemoteConfigEntity = entity;
if (getActivity() instanceof AddWaterPlanActivity) {
@@ -227,6 +286,11 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
}
}
@Override
public void updateConfigSuccess(WaterPlanWeekEntity entity) {
}
@Override
public WaterPlanPresenter createPresenter() {