更新后新增排程提交
This commit is contained in:
@@ -84,12 +84,12 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
|||||||
initListener();
|
initListener();
|
||||||
|
|
||||||
// 编辑模式下,延迟传递数据给 WaterConfigFragment,等 viewBinding 初始化完成后调用
|
// 编辑模式下,延迟传递数据给 WaterConfigFragment,等 viewBinding 初始化完成后调用
|
||||||
// if (mIsEditMode && mEditEntity != null) {
|
if (mIsEditMode && mEditEntity != null) {
|
||||||
// viewBinding.viewpage.post(() -> {
|
viewBinding.viewpage.post(() -> {
|
||||||
// WaterConfigFragment configFragment = (WaterConfigFragment) mFragmentList.get(0);
|
WaterConfigFragment_copy configFragment = (WaterConfigFragment_copy) mFragmentList.get(0);
|
||||||
// configFragment.setEditEntity(mEditEntity);
|
configFragment.setEditEntity(mEditEntity);
|
||||||
// });
|
});
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initListener() {
|
private void initListener() {
|
||||||
@@ -128,8 +128,8 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfirmClick() {
|
public void onConfirmClick() {
|
||||||
// 保存配置后切换
|
// 更新配置
|
||||||
configFragment.commitConfig();
|
configFragment.updateConfig();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
private WaterPlanTimeDataAdapter mTimeAdapter;
|
private WaterPlanTimeDataAdapter mTimeAdapter;
|
||||||
private RecyclerView.ItemDecoration itemDecoration;
|
private RecyclerView.ItemDecoration itemDecoration;
|
||||||
private boolean isConfigSubmitted = false;
|
private boolean isConfigSubmitted = false;
|
||||||
|
//当下是否编辑模式
|
||||||
|
private boolean mIsEditMode = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -109,6 +111,7 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
mWeekAdapter.setSelPos(position);
|
mWeekAdapter.setSelPos(position);
|
||||||
List<WaterPlanWeekEntity.TimeDataBean> timeList = weekList.get(position).getTimeData();
|
List<WaterPlanWeekEntity.TimeDataBean> timeList = weekList.get(position).getTimeData();
|
||||||
mTimeAdapter.setNewData(timeList);
|
mTimeAdapter.setNewData(timeList);
|
||||||
|
viewBinding.switchButton.setChecked(weekList.get(position).getStatus().equals("1"));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//周期对应的 时间配置
|
//周期对应的 时间配置
|
||||||
@@ -172,7 +175,12 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.tv_commit:
|
case R.id.tv_commit:
|
||||||
validateAndSave();
|
// 如果已经保存过(mRemoteEntity 不为空),则走更新逻辑;否则走新增逻辑
|
||||||
|
if (mRemoteEntity != null) {
|
||||||
|
updateConfig();
|
||||||
|
} else {
|
||||||
|
validateAndSave();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -190,10 +198,88 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验配置并保存
|
* 更新配置(用于数据变更后调用)
|
||||||
* @return true表示校验通过并已提交保存,false表示校验失败
|
* @return true表示校验通过并已提交更新,false表示校验失败
|
||||||
*/
|
*/
|
||||||
private boolean validateAndSave() {
|
public boolean updateConfig() {
|
||||||
|
if (!validateConfig()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 调用更新接口
|
||||||
|
if(mLocalEntity != null){
|
||||||
|
mPresenter.updateConfig(mLocalEntity);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置编辑模式的排程数据
|
||||||
|
* @param entity 从详情页传来的排程数据
|
||||||
|
*/
|
||||||
|
public void setEditEntity(WaterPlanWeekEntity entity) {
|
||||||
|
if (entity == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mIsEditMode = true;
|
||||||
|
// 深拷贝数据到 mConfigEntity,用于本地编辑
|
||||||
|
mLocalEntity = cloneEntity(entity);
|
||||||
|
// 保存远程原始数据,用于后续变化检测
|
||||||
|
mRemoteEntity = entity;
|
||||||
|
isConfigSubmitted = true;
|
||||||
|
|
||||||
|
// 初始化 UI
|
||||||
|
viewBinding.editPlanName.setText(entity.getName());
|
||||||
|
// 更新周配置列表的显示,使用 mConfigEntity.getDetails() 保证数据一致
|
||||||
|
if (mLocalEntity.getDetails() != null) {
|
||||||
|
weekList = mLocalEntity.getDetails();
|
||||||
|
mWeekAdapter.setNewData(mLocalEntity.getDetails());
|
||||||
|
mTimeAdapter.setNewData(weekList.get(mWeekAdapter.getmPos()).getTimeData());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 深拷贝 WaterPlanWeekEntity
|
||||||
|
*/
|
||||||
|
private WaterPlanWeekEntity cloneEntity(WaterPlanWeekEntity source) {
|
||||||
|
if (source == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
WaterPlanWeekEntity target = new WaterPlanWeekEntity();
|
||||||
|
target.setId(source.getId());
|
||||||
|
target.setName(source.getName());
|
||||||
|
target.setStatus(source.getStatus());
|
||||||
|
|
||||||
|
if (source.getDetails() != null) {
|
||||||
|
List<WaterPlanWeekEntity.DetailsBean> detailsList = new ArrayList<>();
|
||||||
|
for (WaterPlanWeekEntity.DetailsBean bean : source.getDetails()) {
|
||||||
|
WaterPlanWeekEntity.DetailsBean newBean = new WaterPlanWeekEntity.DetailsBean();
|
||||||
|
List<WaterPlanWeekEntity.TimeDataBean> timeDataList = new ArrayList<>();
|
||||||
|
for(WaterPlanWeekEntity.TimeDataBean timeDataBean : bean.getTimeData()){
|
||||||
|
WaterPlanWeekEntity.TimeDataBean newTimeDataBean = new WaterPlanWeekEntity.TimeDataBean();
|
||||||
|
newTimeDataBean.setStartTime(ZYTimeUtils.formatHHmm(timeDataBean.getStartTime()));
|
||||||
|
newTimeDataBean.setDurationMin(timeDataBean.getDurationMin());
|
||||||
|
timeDataList.add(newTimeDataBean);
|
||||||
|
}
|
||||||
|
newBean.setTimeData(timeDataList);
|
||||||
|
newBean.setId(bean.getId());
|
||||||
|
newBean.setWeekday(bean.getWeekday());
|
||||||
|
newBean.setWeekName(ZYTimeUtils.getWeekName(bean.getWeekday() - 1));
|
||||||
|
newBean.setStatus(bean.getStatus());
|
||||||
|
detailsList.add(newBean);
|
||||||
|
}
|
||||||
|
target.setDetails(detailsList);
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验配置
|
||||||
|
* @return true表示校验通过,false表示校验失败
|
||||||
|
*/
|
||||||
|
private boolean validateConfig() {
|
||||||
if(TextUtils.isEmpty(viewBinding.editPlanName.getText().toString())){
|
if(TextUtils.isEmpty(viewBinding.editPlanName.getText().toString())){
|
||||||
ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint));
|
ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint));
|
||||||
return false;
|
return false;
|
||||||
@@ -222,6 +308,17 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
ToastUtil.showShort(mContext, conflictMsg);
|
ToastUtil.showShort(mContext, conflictMsg);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验配置并保存(新增)
|
||||||
|
* @return true表示校验通过并已提交保存,false表示校验失败
|
||||||
|
*/
|
||||||
|
private boolean validateAndSave() {
|
||||||
|
if (!validateConfig()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if(mLocalEntity != null){
|
if(mLocalEntity != null){
|
||||||
mPresenter.saveConfig(mLocalEntity);
|
mPresenter.saveConfig(mLocalEntity);
|
||||||
return true;
|
return true;
|
||||||
@@ -487,6 +584,10 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
* @param entity
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||||
ToastUtil.showShort(mContext, "排程新增成功");
|
ToastUtil.showShort(mContext, "排程新增成功");
|
||||||
@@ -497,6 +598,7 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
if (entity.getDetails() != null && mLocalEntity.getDetails() != null) {
|
if (entity.getDetails() != null && mLocalEntity.getDetails() != null) {
|
||||||
for (int i = 0; i < entity.getDetails().size() && i < mLocalEntity.getDetails().size(); i++) {
|
for (int i = 0; i < entity.getDetails().size() && i < mLocalEntity.getDetails().size(); i++) {
|
||||||
mLocalEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId());
|
mLocalEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId());
|
||||||
|
mLocalEntity.getDetails().get(i).setStatus(entity.getDetails().get(i).getStatus());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//接口请求之后返回的数据,方便后面做对比
|
//接口请求之后返回的数据,方便后面做对比
|
||||||
@@ -507,6 +609,17 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
* @param entity
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void updateConfigSuccess(WaterPlanWeekEntity entity) {
|
||||||
|
ToastUtil.showShort(mContext, "排程更新成功");
|
||||||
|
mRemoteEntity = entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// private List<WaterPlanWeekEntity.DeviceEntity> getSelectedDevices() {
|
// private List<WaterPlanWeekEntity.DeviceEntity> getSelectedDevices() {
|
||||||
// if (getActivity() instanceof AddWaterPlanActivity) {
|
// if (getActivity() instanceof AddWaterPlanActivity) {
|
||||||
// return ((AddWaterPlanActivity) getActivity()).getSelectedDevices();
|
// return ((AddWaterPlanActivity) getActivity()).getSelectedDevices();
|
||||||
@@ -539,13 +652,6 @@ public class WaterConfigFragment_copy extends BaseFragment<WaterConfigFragmentLa
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateConfigSuccess(WaterPlanWeekEntity entity) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updatePlanStatusSuccess(BaseBean bean, String status) {
|
public void updatePlanStatusSuccess(BaseBean bean, String status) {
|
||||||
|
|
||||||
|
|||||||
@@ -107,12 +107,18 @@ public class WaterPlanPresenter extends BasePresenter<WaterPlanContract.WaterPla
|
|||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
for(WaterPlanWeekEntity.DetailsBean detailsBean : entity.getDetails()){
|
for(WaterPlanWeekEntity.DetailsBean detailsBean : entity.getDetails()){
|
||||||
JSONObject jsonDetails = new JSONObject();
|
JSONObject jsonDetails = new JSONObject();
|
||||||
jsonDetails.put("id", detailsBean.getId());
|
|
||||||
jsonDetails.put("weekday", detailsBean.getWeekday());
|
jsonDetails.put("weekday", detailsBean.getWeekday());
|
||||||
jsonDetails.put("startTime", detailsBean.getStartTime());
|
|
||||||
jsonDetails.put("durationMin", detailsBean.getDurationMin());
|
|
||||||
jsonDetails.put("triggerType", detailsBean.getTriggerType());
|
jsonDetails.put("triggerType", detailsBean.getTriggerType());
|
||||||
jsonDetails.put("status", detailsBean.getStatus());
|
jsonDetails.put("status", detailsBean.getStatus());
|
||||||
|
jsonDetails.put("id", detailsBean.getId());
|
||||||
|
JSONArray timeArray = new JSONArray();
|
||||||
|
for(WaterPlanWeekEntity.TimeDataBean timeDataBean : detailsBean.getTimeData()){
|
||||||
|
JSONObject jsonTime = new JSONObject();
|
||||||
|
jsonTime.put("startTime", timeDataBean.getStartTime());
|
||||||
|
jsonTime.put("durationMin", timeDataBean.getDurationMin());
|
||||||
|
timeArray.put(jsonTime);
|
||||||
|
}
|
||||||
|
jsonDetails.put("timeData", timeArray);
|
||||||
array.put(jsonDetails);
|
array.put(jsonDetails);
|
||||||
}
|
}
|
||||||
json.put("details", array);
|
json.put("details", array);
|
||||||
|
|||||||
Reference in New Issue
Block a user