diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input.xml b/app/src/main/res/layout/dialog_input.xml index 905527b..5685b39 100644 --- a/app/src/main/res/layout/dialog_input.xml +++ b/app/src/main/res/layout/dialog_input.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" - android:textColor="@color/black" + android:textColor="@color/textColor" android:textSize="@dimen/titleFontSize" /> - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input.xml b/app/src/main/res/layout/dialog_input.xml index 905527b..5685b39 100644 --- a/app/src/main/res/layout/dialog_input.xml +++ b/app/src/main/res/layout/dialog_input.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" - android:textColor="@color/black" + android:textColor="@color/textColor" android:textSize="@dimen/titleFontSize" /> + + + + + + + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input.xml b/app/src/main/res/layout/dialog_input.xml index 905527b..5685b39 100644 --- a/app/src/main/res/layout/dialog_input.xml +++ b/app/src/main/res/layout/dialog_input.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" - android:textColor="@color/black" + android:textColor="@color/textColor" android:textSize="@dimen/titleFontSize" /> + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/include_option_title.xml b/app/src/main/res/layout/include_option_title.xml new file mode 100644 index 0000000..6141ca2 --- /dev/null +++ b/app/src/main/res/layout/include_option_title.xml @@ -0,0 +1,33 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input.xml b/app/src/main/res/layout/dialog_input.xml index 905527b..5685b39 100644 --- a/app/src/main/res/layout/dialog_input.xml +++ b/app/src/main/res/layout/dialog_input.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" - android:textColor="@color/black" + android:textColor="@color/textColor" android:textSize="@dimen/titleFontSize" /> + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/include_option_title.xml b/app/src/main/res/layout/include_option_title.xml new file mode 100644 index 0000000..6141ca2 --- /dev/null +++ b/app/src/main/res/layout/include_option_title.xml @@ -0,0 +1,33 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_alarm_recycleview.xml b/app/src/main/res/layout/item_alarm_recycleview.xml new file mode 100644 index 0000000..ceaeb66 --- /dev/null +++ b/app/src/main/res/layout/item_alarm_recycleview.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input.xml b/app/src/main/res/layout/dialog_input.xml index 905527b..5685b39 100644 --- a/app/src/main/res/layout/dialog_input.xml +++ b/app/src/main/res/layout/dialog_input.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" - android:textColor="@color/black" + android:textColor="@color/textColor" android:textSize="@dimen/titleFontSize" /> + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/include_option_title.xml b/app/src/main/res/layout/include_option_title.xml new file mode 100644 index 0000000..6141ca2 --- /dev/null +++ b/app/src/main/res/layout/include_option_title.xml @@ -0,0 +1,33 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_alarm_recycleview.xml b/app/src/main/res/layout/item_alarm_recycleview.xml new file mode 100644 index 0000000..ceaeb66 --- /dev/null +++ b/app/src/main/res/layout/item_alarm_recycleview.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_well_recycleview.xml b/app/src/main/res/layout/item_well_recycleview.xml new file mode 100644 index 0000000..cbb2320 --- /dev/null +++ b/app/src/main/res/layout/item_well_recycleview.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a09973d..febcd02 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -93,8 +93,8 @@ - + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public AlarmListAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_alarm_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (cancelClickListener != null) { + holder.cancelAlarmButton.setChangeAlphaWhenPress(true); + holder.cancelAlarmButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + cancelClickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnCancelClickListener cancelClickListener; + + public interface OnCancelClickListener { + void onClick(int position); + } + + public void setOnCancelClickListener(OnCancelClickListener onCancelClickListener) { + this.cancelClickListener = onCancelClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView alarmMessageView; + private TextView wellCodeView; + private TextView alarmPositionView; + private TextView alarmTimeView; + private QMUIRoundButton cancelAlarmButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + alarmMessageView = itemView.findViewById(R.id.alarmMessageView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + alarmPositionView = itemView.findViewById(R.id.alarmPositionView); + alarmTimeView = itemView.findViewById(R.id.alarmTimeView); + cancelAlarmButton = itemView.findViewById(R.id.cancelAlarmButton); + } + + void bindView(AlarmDataBean.DataBean.RowsBean rowsBean) { + alarmMessageView.setText(rowsBean.getAlarmMessage()); + wellCodeView.setText(rowsBean.getWellCode()); + alarmPositionView.setText(rowsBean.getPosition()); + alarmTimeView.setText(rowsBean.getAlarmTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java new file mode 100644 index 0000000..e5c2883 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/WellListAdapter.java @@ -0,0 +1,139 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.bean.WellListBean; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +public class WellListAdapter extends RecyclerView.Adapter { + + private Context context; + private List dataRows; + private LayoutInflater layoutInflater; + + public WellListAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_well_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (buttonOptionListener != null) { + holder.wellOptionButton.setChangeAlphaWhenPress(true); + holder.wellOptionButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + buttonOptionListener.onClick(position); + } + }); + } + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + private OnOptionClickListener buttonOptionListener; + + public interface OnOptionClickListener { + void onClick(int position); + } + + public void setOnOptionClickListener(OnOptionClickListener optionClickListener) { + this.buttonOptionListener = optionClickListener; + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView wellTypeView; + private TextView wellNameView; + private TextView wellCodeView; + private TextView wellPositionView; + private TextView wellStatusView; + private QMUIRoundButton wellOptionButton; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + wellTypeView = itemView.findViewById(R.id.wellTypeView); + wellNameView = itemView.findViewById(R.id.wellNameView); + wellCodeView = itemView.findViewById(R.id.wellCodeView); + wellPositionView = itemView.findViewById(R.id.wellPositionView); + wellStatusView = itemView.findViewById(R.id.wellStatusView); + wellOptionButton = itemView.findViewById(R.id.wellOptionButton); + } + + @SuppressLint("SetTextI18n") + void bindView(WellListBean.DataBean.RowsBean rowsBean) { + wellTypeView.setText(rowsBean.getWellTypeName()); + wellNameView.setText(rowsBean.getWellName()); + wellNameView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + QMUITipDialog tipDialog = new QMUITipDialog.Builder(context) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_NOTHING) + .setTipWord("井深" + rowsBean.getDeep() + "m") + .create(); + tipDialog.show(); + wellNameView.postDelayed(new Runnable() { + @Override + public void run() { + tipDialog.dismiss(); + } + }, 2000); + } + }); + wellCodeView.setText(rowsBean.getWellCode()); + wellPositionView.setText(rowsBean.getPosition()); + wellStatusView.setText("已" + rowsBean.getBfztName()); + String bfzt = rowsBean.getBfzt(); + if (bfzt.equals("0")) { + wellOptionButton.setText("布防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.onLineColor)); + } else { + wellOptionButton.setText("撤防"); + wellOptionButton.setBackgroundColor(ContextCompat.getColor(context, R.color.qmui_config_color_red)); + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java new file mode 100644 index 0000000..eca89ea --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/AlarmDataBean.java @@ -0,0 +1,301 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class AlarmDataBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * alarmContent : 1 + * deptName : 崇仁县城管局 + * jobStatus : 0 + * alarmContentName : 井盖开盖报警 + * wellCode : GX_WSD_4107_HLDD037 + * alarmTime : 2019-06-24 11:47:10 + * deptid : 24 + * alarmTypeName : 一次报警 + * alarmMessage : 井盖开盖报警 + * staff : 超级管理员 + * deviceId : 1356438698347016196 + * jobId : 1232266 + * jobStatusName : 待处理 + * alarmType : 1 + * alarmValue : -- + * devcode : 412020110003 + * statusName : 正在报警 + * alarmLevel : + * tel : 18200000000 + * id : 11409 + * wellId : 36962 + * position : 活力大道 + * status : 1 + */ + + private int alarmContent; + private String deptName; + private String jobStatus; + private String alarmContentName; + private String wellCode; + private String alarmTime; + private String deptid; + private String alarmTypeName; + private String alarmMessage; + private String staff; + private String deviceId; + private String jobId; + private String jobStatusName; + private String alarmType; + private String alarmValue; + private String devcode; + private String statusName; + private String alarmLevel; + private String tel; + private String id; + private String wellId; + private String position; + private String status; + + public int getAlarmContent() { + return alarmContent; + } + + public void setAlarmContent(int alarmContent) { + this.alarmContent = alarmContent; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getJobStatus() { + return jobStatus; + } + + public void setJobStatus(String jobStatus) { + this.jobStatus = jobStatus; + } + + public String getAlarmContentName() { + return alarmContentName; + } + + public void setAlarmContentName(String alarmContentName) { + this.alarmContentName = alarmContentName; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getAlarmTime() { + return alarmTime; + } + + public void setAlarmTime(String alarmTime) { + this.alarmTime = alarmTime; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public String getAlarmTypeName() { + return alarmTypeName; + } + + public void setAlarmTypeName(String alarmTypeName) { + this.alarmTypeName = alarmTypeName; + } + + public String getAlarmMessage() { + return alarmMessage; + } + + public void setAlarmMessage(String alarmMessage) { + this.alarmMessage = alarmMessage; + } + + public String getStaff() { + return staff; + } + + public void setStaff(String staff) { + this.staff = staff; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getJobStatusName() { + return jobStatusName; + } + + public void setJobStatusName(String jobStatusName) { + this.jobStatusName = jobStatusName; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getAlarmValue() { + return alarmValue; + } + + public void setAlarmValue(String alarmValue) { + this.alarmValue = alarmValue; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getTel() { + return tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getWellId() { + return wellId; + } + + public void setWellId(String wellId) { + this.wellId = wellId; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/WellListBean.java b/app/src/main/java/com/casic/dcms/bean/WellListBean.java new file mode 100644 index 0000000..d8a3c74 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/WellListBean.java @@ -0,0 +1,361 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class WellListBean { + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * area : 361024100 + * bfzt : 1 + * bfztName : 布防 + * coordinateX : 116.076 + * coordinateY : 27.755 + * deep : 2.96 + * deptName : 崇仁县城管局 + * deptid : 24 + * deviceCount : 1 + * id : 36925 + * latBaidu : + * latGaode : 27.751926269532 + * lngBaidu : + * lngGaode : 116.081106499566 + * notes : + * photos : + * position : 巴山二路 + * qu : 361024 + * responsibleDept : 1344110695992258561 + * responsibleDeptName : 市政工程管理所 + * ts : + * valid : 1 + * wellCode : GX_WSD_4107_BSEL001 + * wellFlag1 : + * wellFlag2 : + * wellFlag3 : + * wellName : YS092 + * wellType : 2 + * wellTypeName : 污水井 + */ + + private String area; + private String bfzt; + private String bfztName; + private String coordinateX; + private String coordinateY; + private double deep; + private String deptName; + private String deptid; + private int deviceCount; + private String id; + private String latBaidu; + private String latGaode; + private String lngBaidu; + private String lngGaode; + private String notes; + private String photos; + private String position; + private String qu; + private String responsibleDept; + private String responsibleDeptName; + private String ts; + private String valid; + private String wellCode; + private String wellFlag1; + private String wellFlag2; + private String wellFlag3; + private String wellName; + private String wellType; + private String wellTypeName; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getBfzt() { + return bfzt; + } + + public void setBfzt(String bfzt) { + this.bfzt = bfzt; + } + + public String getBfztName() { + return bfztName; + } + + public void setBfztName(String bfztName) { + this.bfztName = bfztName; + } + + public String getCoordinateX() { + return coordinateX; + } + + public void setCoordinateX(String coordinateX) { + this.coordinateX = coordinateX; + } + + public String getCoordinateY() { + return coordinateY; + } + + public void setCoordinateY(String coordinateY) { + this.coordinateY = coordinateY; + } + + public double getDeep() { + return deep; + } + + public void setDeep(double deep) { + this.deep = deep; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getDeptid() { + return deptid; + } + + public void setDeptid(String deptid) { + this.deptid = deptid; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLatBaidu() { + return latBaidu; + } + + public void setLatBaidu(String latBaidu) { + this.latBaidu = latBaidu; + } + + public String getLatGaode() { + return latGaode; + } + + public void setLatGaode(String latGaode) { + this.latGaode = latGaode; + } + + public String getLngBaidu() { + return lngBaidu; + } + + public void setLngBaidu(String lngBaidu) { + this.lngBaidu = lngBaidu; + } + + public String getLngGaode() { + return lngGaode; + } + + public void setLngGaode(String lngGaode) { + this.lngGaode = lngGaode; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + + public String getPhotos() { + return photos; + } + + public void setPhotos(String photos) { + this.photos = photos; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getQu() { + return qu; + } + + public void setQu(String qu) { + this.qu = qu; + } + + public String getResponsibleDept() { + return responsibleDept; + } + + public void setResponsibleDept(String responsibleDept) { + this.responsibleDept = responsibleDept; + } + + public String getResponsibleDeptName() { + return responsibleDeptName; + } + + public void setResponsibleDeptName(String responsibleDeptName) { + this.responsibleDeptName = responsibleDeptName; + } + + public String getTs() { + return ts; + } + + public void setTs(String ts) { + this.ts = ts; + } + + public String getValid() { + return valid; + } + + public void setValid(String valid) { + this.valid = valid; + } + + public String getWellCode() { + return wellCode; + } + + public void setWellCode(String wellCode) { + this.wellCode = wellCode; + } + + public String getWellFlag1() { + return wellFlag1; + } + + public void setWellFlag1(String wellFlag1) { + this.wellFlag1 = wellFlag1; + } + + public String getWellFlag2() { + return wellFlag2; + } + + public void setWellFlag2(String wellFlag2) { + this.wellFlag2 = wellFlag2; + } + + public String getWellFlag3() { + return wellFlag3; + } + + public void setWellFlag3(String wellFlag3) { + this.wellFlag3 = wellFlag3; + } + + public String getWellName() { + return wellName; + } + + public void setWellName(String wellName) { + this.wellName = wellName; + } + + public String getWellType() { + return wellType; + } + + public void setWellType(String wellType) { + this.wellType = wellType; + } + + public String getWellTypeName() { + return wellTypeName; + } + + public void setWellTypeName(String wellTypeName) { + this.wellTypeName = wellTypeName; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java new file mode 100644 index 0000000..5f5b8a9 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class AlarmListModelImpl implements IAlarmListModel { + + private OnGetListListener onGetListListener; + + public AlarmListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(AlarmDataBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getAlarmListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(AlarmDataBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java new file mode 100644 index 0000000..dc31347 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CancelAlarmModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CancelAlarmModelImpl implements ICancelAlarmModel { + + private OnGetCancelResultListener listener; + + public CancelAlarmModelImpl(OnGetCancelResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetCancelResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage) { + Observable observable = RetrofitServiceManager.getCancelAlarmResult(id, + jobStatus, handleMessage); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java new file mode 100644 index 0000000..fc8b4ce --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IAlarmListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java new file mode 100644 index 0000000..ebf5c2d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICancelAlarmModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICancelAlarmModel { + Subscription sendRetrofitRequest(String id, String jobStatus, String handleMessage); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java new file mode 100644 index 0000000..21cfcc4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IOptionWellModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IOptionWellModel { + Subscription sendRetrofitRequest(String wellId, String bfzt); + + Subscription sendRetrofitRequest(String bfzt); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java new file mode 100644 index 0000000..0c94b69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellListModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IWellListModel { + Subscription sendRetrofitRequest(int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java new file mode 100644 index 0000000..5e636f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/OptionWellModelImpl.java @@ -0,0 +1,75 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class OptionWellModelImpl implements IOptionWellModel { + + private OnGetOptionResultListener listener; + + public OptionWellModelImpl(OnGetOptionResultListener resultListener) { + this.listener = resultListener; + } + + public interface OnGetOptionResultListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String wellId, String bfzt) { + Observable observable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + @Override + public Subscription sendRetrofitRequest(String bfzt) { + Observable observable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java new file mode 100644 index 0000000..189d124 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/WellListModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class WellListModelImpl implements IWellListModel { + + private OnGetListListener onGetListListener; + + public WellListModelImpl(OnGetListListener listener) { + this.onGetListListener = listener; + } + + public interface OnGetListListener { + void onSuccess(WellListBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(int offset) { + Observable observable = RetrofitServiceManager.getWellListResult(offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + onGetListListener.onFailure(e); + } + } + + @Override + public void onNext(WellListBean resultBean) { + if (resultBean != null) { + onGetListListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java new file mode 100644 index 0000000..624715b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.AlarmListModelImpl; +import com.casic.dcms.mvp.view.IAlarmListView; + +public class AlarmListPresenterImpl extends BasePresenter implements IAlarmListPresenter, AlarmListModelImpl.OnGetListListener { + + private IAlarmListView view; + private AlarmListModelImpl model; + + public AlarmListPresenterImpl(IAlarmListView alarmListView) { + this.view = alarmListView; + model = new AlarmListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(AlarmDataBean resultBean) { + view.obtainAlarmResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java index 150d279..0cba932 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AuthenticatePresenterImpl.java @@ -35,5 +35,6 @@ @Override public void onFailure(Throwable throwable) { view.hideProgress(); + view.obtainDataFail(); } } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java new file mode 100644 index 0000000..0d29061 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CancelAlarmPresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CancelAlarmModelImpl; +import com.casic.dcms.mvp.view.ICancelAlarmView; + +public class CancelAlarmPresenterImpl extends BasePresenter implements ICancelAlarmPresenter, + CancelAlarmModelImpl.OnGetCancelResultListener { + + private ICancelAlarmView view; + private CancelAlarmModelImpl actionModel; + + public CancelAlarmPresenterImpl(ICancelAlarmView cancelAlarmView) { + this.view = cancelAlarmView; + actionModel = new CancelAlarmModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, jobStatus, handleMessage)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainCancelResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java new file mode 100644 index 0000000..550deec --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IAlarmListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java new file mode 100644 index 0000000..b0ae2de --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICancelAlarmPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICancelAlarmPresenter { + void onReadyRetrofitRequest(String id, String jobStatus, String handleMessage); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java new file mode 100644 index 0000000..75d5897 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IOptionWellPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +public interface IOptionWellPresenter { + void onReadyRetrofitRequest(String wellId, String bfzt);//单个操作 + + void onReadyRetrofitRequest(String bfzt);//一键操作 + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java new file mode 100644 index 0000000..784d46c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellListPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IWellListPresenter { + void onReadyRetrofitRequest(int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java new file mode 100644 index 0000000..96b75cc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/OptionWellPresenterImpl.java @@ -0,0 +1,46 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.OptionWellModelImpl; +import com.casic.dcms.mvp.view.IOptionWellView; + +public class OptionWellPresenterImpl extends BasePresenter implements IOptionWellPresenter, + OptionWellModelImpl.OnGetOptionResultListener { + + private IOptionWellView view; + private OptionWellModelImpl actionModel; + + public OptionWellPresenterImpl(IOptionWellView optionWellView) { + this.view = optionWellView; + actionModel = new OptionWellModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String wellId, String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(wellId, bfzt)); + } + + @Override + public void onReadyRetrofitRequest(String bfzt) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(bfzt)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainOptionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java new file mode 100644 index 0000000..b739b4f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellListPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.WellListModelImpl; +import com.casic.dcms.mvp.view.IWellListView; + +public class WellListPresenterImpl extends BasePresenter implements IWellListPresenter, WellListModelImpl.OnGetListListener { + + private IWellListView view; + private WellListModelImpl model; + + public WellListPresenterImpl(IWellListView wellListView) { + this.view = wellListView; + model = new WellListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(int offset) { + addSubscription(model.sendRetrofitRequest(offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(WellListBean resultBean) { + view.obtainDeviceResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java new file mode 100644 index 0000000..f029acd --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAlarmListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.AlarmDataBean; + +public interface IAlarmListView { + void obtainAlarmResult(AlarmDataBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java index 70c9c76..77e84a4 100644 --- a/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java +++ b/app/src/main/java/com/casic/dcms/mvp/view/IAuthenticateView.java @@ -8,4 +8,6 @@ void hideProgress(); void authenticateResult(PublicKeyBean result); + + void obtainDataFail(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java new file mode 100644 index 0000000..96c4841 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICancelAlarmView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICancelAlarmView { + void showProgress(); + + void obtainCancelResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java new file mode 100644 index 0000000..7e3261d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IOptionWellView.java @@ -0,0 +1,13 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IOptionWellView { + void showProgress(); + + void obtainOptionResult(ActionResultBean resultBean); + + void obtainDataFail(); + + void hideProgress(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java new file mode 100644 index 0000000..fc5545a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellListView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.WellListBean; + +public interface IWellListView { + void obtainDeviceResult(WellListBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index f1675ab..c732a47 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -52,7 +52,7 @@ @Override protected void setupTopBarLayout() { - topLayout.setTitle("查看案卷位置").setTextColor(ContextCompat.getColor(this, R.color.white)); + topLayout.setTitle("位置查看").setTextColor(ContextCompat.getColor(this, R.color.white)); topLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); topLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { @Override @@ -65,7 +65,6 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); -// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); @@ -107,7 +106,7 @@ } private void addPictureMarker(Point point) { - Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_case); + Bitmap caseBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.location_verify); BitmapDrawable caseDrawable = new BitmapDrawable(getResources(), caseBitmap); PictureMarkerSymbol pictureMarker = new PictureMarkerSymbol(caseDrawable); pictureMarker.setHeight(24); diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index f5c5748..238c397 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -222,6 +222,11 @@ } @Override + public void obtainDataFail() { + ToastHelper.showToast("登录失败", ToastHelper.ERROR); + } + + @Override public void obtainLoginResult(LoginResultBean result) { String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { diff --git a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java index fa77936..7bd754c 100644 --- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java @@ -1,9 +1,75 @@ package com.casic.dcms.ui; -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; -public class PipelineManagerActivity extends BaseActivity { +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.AlarmListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; +import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl; +import com.casic.dcms.mvp.presenter.CancelAlarmPresenterImpl; +import com.casic.dcms.mvp.view.IAlarmListView; +import com.casic.dcms.mvp.view.ICancelAlarmView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class PipelineManagerActivity extends BaseCaseActivity implements IAlarmListView, ICancelAlarmView { + + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.warningRecyclerView) + RecyclerView warningRecyclerView; + + private static final String TAG = "PipelineManagerActivity"; + private Context context = this; + private AlarmListPresenterImpl alarmListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private AlarmListAdapter adapter; + private int pageIndex = 1; + private CancelAlarmPresenterImpl cancelAlarmPresenter; @Override public int initLayoutView() { @@ -11,17 +77,190 @@ } @Override - protected void setupTopBarLayout() { + protected String setTitleName() { + return "管网管理"; + } + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: +// showCancelDialog(null); + break; + case 1: + + break; + case 2: + startActivity(new Intent(context, WellListActivity.class)); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); } @Override public void initData() { + alarmListPresenter = new AlarmListPresenterImpl(this); + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + weakReferenceHandler = new WeakReferenceHandler(this); + + cancelAlarmPresenter = new CancelAlarmPresenterImpl(this); } @Override public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(PipelineManagerActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + PipelineManagerActivity resultActivity = reference.get(); + if (msg.what == 20210626) { + if (resultActivity.isRefresh || resultActivity.isLoadMore) { + resultActivity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (resultActivity.dataBeans.size() == 0) { + resultActivity.emptyView.show("设备状态很好,没有任何报警", null); + } else { + resultActivity.emptyView.hide(); + resultActivity.adapter = new AlarmListAdapter(resultActivity, resultActivity.dataBeans); + resultActivity.warningRecyclerView.setLayoutManager(new LinearLayoutManager(resultActivity)); + resultActivity.warningRecyclerView.addItemDecoration(new DividerItemDecoration(resultActivity, DividerItemDecoration.VERTICAL)); + resultActivity.warningRecyclerView.setAdapter(resultActivity.adapter); + resultActivity.adapter.setOnCancelClickListener(new AlarmListAdapter.OnCancelClickListener() { + @Override + public void onClick(int position) { + resultActivity.showCancelDialog(resultActivity.dataBeans.get(position).getJobId()); + } + }); + } + } + } + } + } + + private void showCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + cancelAlarmPresenter.onReadyRetrofitRequest(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainCancelResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("取消报警成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + alarmListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainAlarmResult(AlarmDataBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (alarmListPresenter != null) { + alarmListPresenter.disposeRetrofitRequest(); + } + if (cancelAlarmPresenter != null) { + cancelAlarmPresenter.disposeRetrofitRequest(); + } } } diff --git a/app/src/main/java/com/casic/dcms/ui/WellListActivity.java b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java new file mode 100644 index 0000000..5e58cae --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/WellListActivity.java @@ -0,0 +1,304 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.WellListAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.WellListBean; +import com.casic.dcms.mvp.presenter.OptionWellPresenterImpl; +import com.casic.dcms.mvp.presenter.WellListPresenterImpl; +import com.casic.dcms.mvp.view.IOptionWellView; +import com.casic.dcms.mvp.view.IWellListView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.ToastHelper; +import com.gyf.immersionbar.ImmersionBar; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUIEmptyView; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.SmartRefreshLayout; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; + +public class WellListActivity extends BaseCaseActivity implements View.OnClickListener, IWellListView, IOptionWellView { + + private Context context = this; + @BindView(R.id.leftBackView) + ImageView leftBackView; + @BindView(R.id.titleView) + TextView titleView; + @BindView(R.id.rightImageView) + ImageView rightImageView; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; + @BindView(R.id.refreshLayout) + SmartRefreshLayout refreshLayout; + @BindView(R.id.wellRecyclerView) + RecyclerView wellRecyclerView; + + private WellListPresenterImpl wellListPresenter; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh, isLoadMore = false; + private WeakReferenceHandler weakReferenceHandler; + private WellListAdapter adapter; + private int pageIndex = 1; + private OptionWellPresenterImpl optionWellPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_well_list; + } + + @Override + protected String setTitleName() { + return "窨井列表"; + } + + @Override + protected void setupTopBarLayout() { + StatusBarColorUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + leftBackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + titleView.setText(setTitleName()); + rightImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, Constant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + optionWellPresenter.onReadyRetrofitRequest("1"); + break; + case 1: + optionWellPresenter.onReadyRetrofitRequest("0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(rightImageView); + } + }); + } + + @Override + public void initData() { + wellListPresenter = new WellListPresenterImpl(this); + wellListPresenter.onReadyRetrofitRequest(pageIndex); + + weakReferenceHandler = new WeakReferenceHandler(this); + + optionWellPresenter = new OptionWellPresenterImpl(this); + } + + @Override + public void initEvent() { + refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } + }); + } + + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(WellListActivity activity) { + reference = new WeakReference<>(activity); + } + + @Override + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + WellListActivity activity = reference.get(); + if (msg.what == 20210628) { + if (activity.isRefresh || activity.isLoadMore) { + activity.adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (activity.dataBeans.size() == 0) { + activity.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + activity.emptyView.hide(); + activity.adapter = new WellListAdapter(activity, activity.dataBeans); + activity.wellRecyclerView.setLayoutManager(new LinearLayoutManager(activity)); + activity.wellRecyclerView.addItemDecoration(new DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)); + activity.wellRecyclerView.setAdapter(activity.adapter); + activity.adapter.setOnItemClickListener(new WellListAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + WellListBean.DataBean.RowsBean rowsBean = activity.dataBeans.get(position); + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + Intent intent = new Intent(activity, DisplayMapActivity.class); + intent.putExtra("caseType", "others"); + if (TextUtils.isEmpty(lng)) { + ToastHelper.showToast("经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(lng)); + if (TextUtils.isEmpty(lat)) { + ToastHelper.showToast("纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(lat)); + activity.startActivity(intent); + } + }); + activity.adapter.setOnOptionClickListener(new WellListAdapter.OnOptionClickListener() { + @Override + public void onClick(int position) { + String bfzt = activity.dataBeans.get(position).getBfzt(); + String bfztName = ""; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + ToastHelper.showToast("窨井状态错误,无法进行撤防或者布防", ToastHelper.ERROR); + return; + } + activity.showOptionDialog(bfztName, activity.dataBeans.get(position).getId(), bfzt); + + } + }); + } + } + } + } + } + + private void showOptionDialog(String bfztName, String id, String bfzt) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + optionWellPresenter.onReadyRetrofitRequest(id, bfzt); + } + }) + .create().show(); + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后..."); + } + + @Override + public void obtainOptionResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("操作成功", ToastHelper.SUCCESS); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + wellListPresenter.onReadyRetrofitRequest(pageIndex); + } else { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void onClick(View v) { + + } + + @Override + public void obtainDeviceResult(WellListBean resultBean) { + if (resultBean.isSuccess()) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); + } + dataBeans.addAll(dataRows); + refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (wellListPresenter != null) { + wellListPresenter.disposeRetrofitRequest(); + } + if (optionWellPresenter != null) { + optionWellPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 0a7cb19..d9656aa 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -167,12 +167,12 @@ case "路桥养护": intent.setClass(context, BridgeMaintainActivity.class); break; - case "管网管理": - intent.setClass(context, PipelineManagerActivity.class); - break; case "路灯管理": intent.setClass(context, StreetlightManagerActivity.class); break; + case "管网管理": + intent.setClass(context, PipelineManagerActivity.class); + break; default: break; } diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 9a50b53..b3fbd7b 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -17,6 +17,9 @@ public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "部门授权审核", "已办案卷", "二级缓办待处理", "二级延期待处理"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; + public static final String[] SPINNER_ITEMS = {"请选择", "已处理", "无需处理"}; + public static final String[] POPUP_LIST_ITEMS = {"一键消警", "报警分布", "窨井列表"}; + public static final String[] POPUP_OPTION_ITEMS = {"一键布防", "一键撤防"}; public static final List ANALYSIS_ICONS = Arrays.asList( R.drawable.ic_wtly, R.drawable.ic_ajzt, R.drawable.ic_gfwt, @@ -64,6 +67,7 @@ public static final int MESSAGE_NUMBER = 21; public static final int PACKAGE_DONE = 22; public static final int DEPT_DONE = 23; + public static final int CANCEL_ALARM_DONE = 24; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index b1a4429..fdabe5d 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -34,6 +35,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import java.util.List; @@ -663,7 +665,7 @@ @Query("offset") int offset); /** - * 路灯分页列表数据 + * 路灯分页列表 *

* http://111.198.10.15:11409/lightCr/overview/lampListPage?limit=15&offset=1 */ @@ -673,7 +675,7 @@ @Query("offset") int offset); /** - * 路灯全部数据 + * 全部路灯 *

* http://111.198.10.15:11409/lampCr/overview/lampList */ @@ -681,7 +683,7 @@ Observable obtainLightList(@Header("token") String token); /** - * 路灯列详情数据 + * 路灯详情 *

* http://111.198.10.15:11409/lightCr/overview/lampDetail?lampId=1354712301527764999 */ @@ -690,7 +692,7 @@ @Query("lampId") String lampId); /** - * 路灯列表数据 + * 路灯列表 *

* http://111.198.10.15:11409/lightCr/overview/lampControl */ @@ -699,4 +701,60 @@ Observable controlStreetLight(@Header("token") String token, @Field("lampIds") List lampIds, @Field("controlType") String controlType); + + /** + * 报警列表 + *

+ * http://111.198.10.15:11409/smartwell/alarm/list?status=1 + */ + @GET("/smartwell/alarm/list") + Observable obtainAlarmList(@Header("token") String token, + @Query("status") String status, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 取消报警 + *

+ * http://111.198.10.15:11409/smartwell/alarm/cancelAlarm?id=1232266&jobStatus=3&handleMessage=dfgdfgd + */ + @FormUrlEncoded + @POST("/smartwell/alarm/cancelAlarm") + Observable cancelAlarm(@Header("token") String token, + @Field("id") String id, + @Field("jobStatus") String jobStatus, + @Field("handleMessage") String handleMessage); + + /** + * 窨井列表 + *

+ * http://111.198.10.15:11409/smartwell/well/list?offset=1&limit=15&sort=wellCode&order=asc + */ + @GET("/smartwell/well/list") + Observable obtainWellList(@Header("token") String token, + @Query("sort") String sort, + @Query("order") String order, + @Query("limit") int limit, + @Query("offset") int offset); + + /** + * 单个撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/bfcf?wellId=36925&bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/bfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("wellId") String wellId, + @Field("bfzt") String bfzt); + + /** + * 一键撤防/布防 0/1 + *

+ * http://111.198.10.15:11409/smartwell/well/batchBfcf?bfzt=0 + */ + @FormUrlEncoded + @POST("/smartwell/well/batchBfcf") + Observable optionWellStatus(@Header("token") String token, + @Field("bfzt") String bfzt); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 6503d64..ac2ee88 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AlarmDataBean; import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; @@ -36,6 +37,7 @@ import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; +import com.casic.dcms.bean.WellListBean; import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.SaveKeyValues; @@ -683,7 +685,7 @@ } /** - * 路灯分页列表数据 + * 路灯分页列表 */ public static Observable getLightListResult(int limit, int offset) { Retrofit retrofit = createRetrofit(); @@ -692,7 +694,7 @@ } /** - * 路灯全部数据 + * 全部路灯 */ public static Observable getLightListResult() { Retrofit retrofit = createRetrofit(); @@ -701,7 +703,7 @@ } /** - * 路灯详情数据 + * 路灯详情 * 因为返回的数据会出现结构不一致的问题,不能用实体类接收改为ResponseBody接收,然后在手动解析 */ public static Observable getLightDetailResult(String lampId) { @@ -718,4 +720,61 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.controlStreetLight(AuthenticationHelper.getToken(), lampIds, controlType); } + + /** + * 报警列表 + */ + public static Observable getAlarmListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset); + } + + /** + * 取消报警 + */ + public static Observable getCancelAlarmResult(String id, String jobStatus, String handleMessage) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.cancelAlarm(AuthenticationHelper.getToken(), id, jobStatus, handleMessage); + } + + /** + * 窨井列表 + */ + public static Observable getWellListResult(int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc", Constant.PAGE_LIMIT, offset); + } + + /** + * 单个撤防/布防 + */ + public static Observable getSingleOptionWellResult(String wellId, String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), wellId, bfzt); + } + + /** + * 一键撤防/布防 + */ + public static Observable getBatchOptionWellResult(String bfzt) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.optionWellStatus(AuthenticationHelper.getToken(), bfzt); + } + + /** + * 测试别的端口数据,永远放最后面 + */ + private static Retrofit createTestRetrofit() { + return new Retrofit.Builder() + .baseUrl("http://111.198.10.15:11643") + .addConverterFactory(GsonConverterFactory.create())//Gson转换器 + .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) + .client(createOKHttpClient())//log拦截器 + .build(); + } } diff --git a/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java new file mode 100644 index 0000000..3078440 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/widgets/CancelAlarmDialog.java @@ -0,0 +1,119 @@ +package com.casic.dcms.widgets; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.casic.dcms.R; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +public class CancelAlarmDialog extends Dialog implements View.OnClickListener { + + private static final String TAG = "CancelAlarmDialog"; + private Context context; + private EditText cancelReasonView; + private OnDialogButtonClickListener listener; + private String status; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_cancel_alarm); + + Spinner reasonSpinner = findViewById(R.id.selectReasonView); + ArrayAdapter spinnerAdapter = new ArrayAdapter(context, android.R.layout.simple_spinner_item, Constant.SPINNER_ITEMS); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + reasonSpinner.setAdapter(spinnerAdapter); + + cancelReasonView = findViewById(R.id.cancelReasonView); + + TextView closeDialogView = findViewById(R.id.closeDialogView); + closeDialogView.setOnClickListener(this); + + QMUIRoundButton dialogCancelButton = findViewById(R.id.dialogCancelButton); + dialogCancelButton.setChangeAlphaWhenPress(true); + dialogCancelButton.setOnClickListener(this); + + QMUIRoundButton dialogConfirmButton = findViewById(R.id.dialogConfirmButton); + dialogConfirmButton.setChangeAlphaWhenPress(true); + dialogConfirmButton.setOnClickListener(this); + + reasonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + status = String.valueOf(position + 2); + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + } + + @Override + public void onClick(View view) { + int i = view.getId(); + if (i == R.id.dialogCancelButton) { + if (listener != null) { + listener.onCancelClick(); + } + } else if (i == R.id.dialogConfirmButton) { + if (listener != null) { + String editReason = cancelReasonView.getText().toString().trim(); + if (status.equals("2")) { + ToastHelper.showToast("原因还没选,无法取消报警", ToastHelper.WARING); + return; + } + if (TextUtils.isEmpty(editReason)) { + ToastHelper.showToast("理由还没填写,无法取消报警", ToastHelper.WARING); + return; + } + listener.onConfirmClick(status, editReason); + } + } else if (i == R.id.closeDialogView) { + listener.onCancelClick(); + } + this.dismiss(); + } + + public interface OnDialogButtonClickListener { + void onConfirmClick(String status, String editReason); + + void onCancelClick(); + } + + private CancelAlarmDialog(Builder builder) { + super(builder.mContext); + this.context = builder.mContext; + this.listener = builder.listener; + } + + public static class Builder { + private Context mContext; + private OnDialogButtonClickListener listener; + + public Builder setContext(Context context) { + this.mContext = context; + return this; + } + + public Builder setOnDialogButtonClickListener(OnDialogButtonClickListener listener) { + this.listener = listener; + return this; + } + + public CancelAlarmDialog build() { + return new CancelAlarmDialog(this); + } + } +} diff --git a/app/src/main/res/drawable/ic_close.xml b/app/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000..7135ea4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml new file mode 100644 index 0000000..859e9ca --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_off.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_on.xml b/app/src/main/res/drawable/ic_dot_on.xml new file mode 100644 index 0000000..0b0bd97 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_on.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_dot_warning.xml b/app/src/main/res/drawable/ic_dot_warning.xml new file mode 100644 index 0000000..dadb908 --- /dev/null +++ b/app/src/main/res/drawable/ic_dot_warning.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sanbao.xml b/app/src/main/res/drawable/ic_sanbao.xml index 820b406..1f1134d 100644 --- a/app/src/main/res/drawable/ic_sanbao.xml +++ b/app/src/main/res/drawable/ic_sanbao.xml @@ -3,9 +3,11 @@ android:height="160px" android:viewportWidth="1024" android:viewportHeight="1024"> + + diff --git a/app/src/main/res/drawable/ic_toilet.xml b/app/src/main/res/drawable/ic_toilet.xml index ea4d7f8..3679a2f 100644 --- a/app/src/main/res/drawable/ic_toilet.xml +++ b/app/src/main/res/drawable/ic_toilet.xml @@ -1,30 +1,15 @@ - - + - - - - - - - + android:pathData="M512,55.7C260,55.7 55.7,260 55.7,512S260,968.3 512,968.3 968.3,764 968.3,512 764,55.7 512,55.7zM691.3,226.9c26.6,0 48.3,21.5 48.3,48.1s-21.6,48.1 -48.3,48.1c-26.7,0 -48.3,-21.5 -48.3,-48.1 0,-26.5 21.6,-48.1 48.3,-48.1zM349.2,225.7c26.4,0 47.8,21.6 47.8,48.3 0,26.7 -21.4,48.3 -47.8,48.3s-47.8,-21.6 -47.8,-48.3c0,-26.7 21.4,-48.3 47.8,-48.3zM445,523.9l-42.7,-123.1c-0.3,-1 -1.3,-1.7 -2.4,-1.7 -1.6,0 -2.8,1.5 -2.4,3.1 6.9,27 56.3,221 58.5,228.8 1.2,4.2 -0.5,7.2 -4.9,7.2h-46.7c-1.4,0 -2.5,1.1 -2.5,2.5L401.9,785c0,29.9 -44.2,29.9 -44.2,0L357.7,639.6c0,-1.4 -1.1,-2.5 -2.5,-2.5h-11.9c-1.4,0 -2.5,1.1 -2.5,2.5L340.8,785c0,29.9 -44.2,29.9 -44.2,0L296.6,640.7c0,-1.4 -1.1,-2.5 -2.5,-2.5h-46.7c-4.4,0 -6.1,-3 -4.9,-7.2 2.2,-7.8 51.6,-201.8 58.4,-228.8 0.4,-1.6 -0.8,-3.1 -2.4,-3.1 -1.1,0 -2,0.7 -2.4,1.7l-42.7,123.1c-8.8,27.4 -42.3,17 -33.8,-12.4l41,-136.5c8,-24.2 31.8,-43.2 66.6,-43.2h44.1c34.8,0 58.6,19 66.6,43.2l41,136.5c8.4,29.4 -25.1,39.8 -33.9,12.4zM524,805.2h-18.4L505.6,217.3L524,217.3v587.9zM804.8,542.9c0,28.7 -38.8,28.7 -38.8,0l-3.4,-135.1h-10v369.9c0,38.4 -52.8,37.3 -52.8,0L696.6,563h-10.5l-3.4,214.7c0,37.3 -52.8,38.4 -52.8,0L629.9,407.8h-10l-3.3,135.1c0,28.7 -38.9,28.7 -38.9,0L577.7,395.1c0,-50.5 15.2,-62.5 61.7,-62.5h103.8c46.5,0 61.6,11.9 61.6,62.5v147.8z" + tools:ignore="VectorPath" /> diff --git a/app/src/main/res/layout/activity_pipe.xml b/app/src/main/res/layout/activity_pipe.xml index 3509b84..0dbc659 100644 --- a/app/src/main/res/layout/activity_pipe.xml +++ b/app/src/main/res/layout/activity_pipe.xml @@ -1,6 +1,39 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_well_list.xml b/app/src/main/res/layout/activity_well_list.xml new file mode 100644 index 0000000..404ebbf --- /dev/null +++ b/app/src/main/res/layout/activity_well_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_cancel_alarm.xml b/app/src/main/res/layout/dialog_cancel_alarm.xml new file mode 100644 index 0000000..02ae41e --- /dev/null +++ b/app/src/main/res/layout/dialog_cancel_alarm.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input.xml b/app/src/main/res/layout/dialog_input.xml index 905527b..5685b39 100644 --- a/app/src/main/res/layout/dialog_input.xml +++ b/app/src/main/res/layout/dialog_input.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" - android:textColor="@color/black" + android:textColor="@color/textColor" android:textSize="@dimen/titleFontSize" /> + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/include_option_title.xml b/app/src/main/res/layout/include_option_title.xml new file mode 100644 index 0000000..6141ca2 --- /dev/null +++ b/app/src/main/res/layout/include_option_title.xml @@ -0,0 +1,33 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_alarm_recycleview.xml b/app/src/main/res/layout/item_alarm_recycleview.xml new file mode 100644 index 0000000..ceaeb66 --- /dev/null +++ b/app/src/main/res/layout/item_alarm_recycleview.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_well_recycleview.xml b/app/src/main/res/layout/item_well_recycleview.xml new file mode 100644 index 0000000..cbb2320 --- /dev/null +++ b/app/src/main/res/layout/item_well_recycleview.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 66ee2db..84e2be7 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -16,6 +16,7 @@ #278DF9 #575757 + #24CE9E #06134C #090E47