optionWellStatus(@Header("token") String token,
@Field("bfzt") String bfzt);
+
+ /**
+ * 井详情
+ *
+ * http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer/0/query?f=json&inSr=4326&outSR=4326&outFields=*&returnGeometry=true&where=编号='GX_WSD_4107_HLDD154'
+ */
+ @GET("/arcgis/rest/services/fsw/MapServer/0/query")
+ Observable obtainWellDetail(@Query("f") String f,
+ @Query("inSr") String inSr,
+ @Query("outSR") String outSR,
+ @Query("outFields") String outFields,
+ @Query("returnGeometry") boolean returnGeometry,
+ @Query("where") String where);
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index febcd02..f845c47 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -95,6 +95,7 @@
+
fields;
+ private List features;
+
+ public String getDisplayFieldName() {
+ return displayFieldName;
+ }
+
+ public void setDisplayFieldName(String displayFieldName) {
+ this.displayFieldName = displayFieldName;
+ }
+
+ public FieldAliasesBean getFieldAliases() {
+ return fieldAliases;
+ }
+
+ public void setFieldAliases(FieldAliasesBean fieldAliases) {
+ this.fieldAliases = fieldAliases;
+ }
+
+ public String getGeometryType() {
+ return geometryType;
+ }
+
+ public void setGeometryType(String geometryType) {
+ this.geometryType = geometryType;
+ }
+
+ public SpatialReferenceBean getSpatialReference() {
+ return spatialReference;
+ }
+
+ public void setSpatialReference(SpatialReferenceBean spatialReference) {
+ this.spatialReference = spatialReference;
+ }
+
+ public List getFields() {
+ return fields;
+ }
+
+ public void setFields(List fields) {
+ this.fields = fields;
+ }
+
+ public List getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(List features) {
+ this.features = features;
+ }
+
+ public static class FieldAliasesBean {
+
+ private String objectid;
+ private String 编号;
+ private String 附属物编码;
+ private String 地面高程;
+ private String x坐标;
+ private String y坐标;
+ private String 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private String jd;
+ private String wd;
+
+ public String getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(String objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public String get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(String 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public String get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(String 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public String getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(String x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public String getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(String y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public String get井深() {
+ return 井深;
+ }
+
+ public void set井深(String 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public String getJd() {
+ return jd;
+ }
+
+ public void setJd(String jd) {
+ this.jd = jd;
+ }
+
+ public String getWd() {
+ return wd;
+ }
+
+ public void setWd(String wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class SpatialReferenceBean {
+
+ private int wkid;
+ private int latestWkid;
+
+ public int getWkid() {
+ return wkid;
+ }
+
+ public void setWkid(int wkid) {
+ this.wkid = wkid;
+ }
+
+ public int getLatestWkid() {
+ return latestWkid;
+ }
+
+ public void setLatestWkid(int latestWkid) {
+ this.latestWkid = latestWkid;
+ }
+ }
+
+ public static class FieldsBean {
+
+ private String name;
+ private String type;
+ private String alias;
+ private int length;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+ }
+
+ public static class FeaturesBean {
+
+ private AttributesBean attributes;
+ private GeometryBean geometry;
+
+ public AttributesBean getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AttributesBean attributes) {
+ this.attributes = attributes;
+ }
+
+ public GeometryBean getGeometry() {
+ return geometry;
+ }
+
+ public void setGeometry(GeometryBean geometry) {
+ this.geometry = geometry;
+ }
+
+ public static class AttributesBean {
+ /**
+ * objectid : 3984
+ * 编号 : GX_WSD_4107_HLDD150
+ * 附属物编码 : 4107
+ * 地面高程 : 59.462
+ * x坐标 : 3071874.507
+ * y坐标 : 408323.999
+ * 井深 : 2.72
+ * 附属物名称 : 污水井
+ * 所属道路 : 活力大道
+ * 建设年代 :
+ * 权属单位 :
+ * 备注 :
+ * jd : 116.070072
+ * wd : 27.757135
+ */
+
+ private int objectid;
+ private String 编号;
+ private int 附属物编码;
+ private double 地面高程;
+ private double x坐标;
+ private double y坐标;
+ private double 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private double jd;
+ private double wd;
+
+ public int getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(int objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public int get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(int 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public double get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(double 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public double getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(double x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public double getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(double y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public double get井深() {
+ return 井深;
+ }
+
+ public void set井深(double 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public double getJd() {
+ return jd;
+ }
+
+ public void setJd(double jd) {
+ this.jd = jd;
+ }
+
+ public double getWd() {
+ return wd;
+ }
+
+ public void setWd(double wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class GeometryBean {
+ /**
+ * x : 116.07007205499997
+ * y : 27.757134534999977
+ */
+
+ private double x;
+ private double y;
+
+ public double getX() {
+ return x;
+ }
+
+ public void setX(double x) {
+ this.x = x;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ public void setY(double y) {
+ this.y = y;
+ }
+ }
+ }
+}
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
index 5f5b8a9..1117853 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
@@ -24,8 +24,8 @@
}
@Override
- public Subscription sendRetrofitRequest(int offset) {
- Observable observable = RetrofitServiceManager.getAlarmListResult(offset);
+ public Subscription sendRetrofitRequest(int limit,int offset) {
+ Observable observable = RetrofitServiceManager.getAlarmListResult(limit, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
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
index fc8b4ce..d9f08dc 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
@@ -3,5 +3,5 @@
import rx.Subscription;
public interface IAlarmListModel {
- Subscription sendRetrofitRequest(int offset);
+ Subscription sendRetrofitRequest(int limit,int offset);
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
new file mode 100644
index 0000000..1db090e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IWellDetailModel {
+ Subscription sendRetrofitRequest(String where);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
new file mode 100644
index 0000000..f9e7a3e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.WellDetailBean;
+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 WellDetailModelImpl implements IWellDetailModel {
+
+ private OnGetDetailListener listener;
+
+ public WellDetailModelImpl(OnGetDetailListener listListener) {
+ this.listener = listListener;
+ }
+
+ public interface OnGetDetailListener {
+ void onSuccess(WellDetailBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String where) {
+ Observable observable = RetrofitServiceManager.getWellDetailResult(where);
+ 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(WellDetailBean resultBean) {
+ if (resultBean != null) {
+ listener.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
index 624715b..1851e54 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
@@ -16,8 +16,8 @@
}
@Override
- public void onReadyRetrofitRequest(int offset) {
- addSubscription(model.sendRetrofitRequest(offset));
+ public void onReadyRetrofitRequest(int limit, int offset) {
+ addSubscription(model.sendRetrofitRequest(limit, offset));
}
@Override
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
index 550deec..2408f94 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
@@ -1,7 +1,7 @@
package com.casic.dcms.mvp.presenter;
public interface IAlarmListPresenter {
- void onReadyRetrofitRequest(int offset);
+ void onReadyRetrofitRequest(int limit,int offset);
void disposeRetrofitRequest();
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
new file mode 100644
index 0000000..e968509
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IWellDetailPresenter {
+ void onReadyRetrofitRequest(String where);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
new file mode 100644
index 0000000..1a123f1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.WellDetailModelImpl;
+import com.casic.dcms.mvp.view.IWellDetailView;
+
+public class WellDetailPresenterImpl extends BasePresenter implements IWellDetailPresenter, WellDetailModelImpl.OnGetDetailListener {
+
+ private IWellDetailView view;
+ private WellDetailModelImpl actionModel;
+
+ public WellDetailPresenterImpl(IWellDetailView detailView) {
+ this.view = detailView;
+ actionModel = new WellDetailModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String where) {
+ addSubscription(actionModel.sendRetrofitRequest(where));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(WellDetailBean resultBean) {
+ view.obtainWellDetailResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
new file mode 100644
index 0000000..2d01903
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.WellDetailBean;
+
+public interface IWellDetailView {
+ void obtainWellDetailResult(WellDetailBean resultBean);
+}
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 b1b7352..a58662d 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -27,6 +27,7 @@
import com.casic.dcms.mvp.view.ICancelAlarmView;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.CancelAlarmDialog;
@@ -105,7 +106,7 @@
showBatchCancelDialog();
break;
case 1:
-
+ startActivity(new Intent(context, WarningOnMapActivity.class));
break;
case 2:
startActivity(new Intent(context, WellListActivity.class));
@@ -123,7 +124,7 @@
@Override
public void initData() {
alarmListPresenter = new AlarmListPresenterImpl(this);
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
weakReferenceHandler = new WeakReferenceHandler(this);
@@ -138,7 +139,7 @@
isRefresh = true;
//刷新之后页码重置
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@@ -146,7 +147,7 @@
public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
isLoadMore = true;
pageIndex++;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
}
@@ -231,7 +232,7 @@
//取消成功之后自动刷新列表
isRefresh = true;
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
} else {
ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR);
}
@@ -240,6 +241,7 @@
@Override
public void obtainAlarmResult(AlarmDataBean resultBean) {
if (resultBean.isSuccess()) {
+ SaveKeyValues.putValue("alarmTotal", resultBean.getData().getTotal());
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
diff --git a/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java
new file mode 100644
index 0000000..b318fe0
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java
@@ -0,0 +1,221 @@
+package com.casic.dcms.ui;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.AlarmDataBean;
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl;
+import com.casic.dcms.mvp.presenter.WellDetailPresenterImpl;
+import com.casic.dcms.mvp.view.IAlarmListView;
+import com.casic.dcms.mvp.view.IWellDetailView;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.esri.arcgisruntime.geometry.Point;
+import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
+import com.esri.arcgisruntime.mapping.ArcGISMap;
+import com.esri.arcgisruntime.mapping.Basemap;
+import com.esri.arcgisruntime.mapping.BasemapStyle;
+import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
+import com.esri.arcgisruntime.mapping.view.Graphic;
+import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
+import com.esri.arcgisruntime.mapping.view.MapView;
+import com.esri.arcgisruntime.symbology.SimpleMarkerSymbol;
+import com.esri.arcgisruntime.util.ListenableList;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.popup.QMUIPopup;
+import com.qmuiteam.qmui.widget.popup.QMUIPopups;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class WarningOnMapActivity extends BaseActivity implements View.OnClickListener, IAlarmListView,
+ IWellDetailView {
+
+ private static final String TAG = "WarningOnMapActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.mapView)
+ MapView mapView;
+
+ private AlarmListPresenterImpl alarmListPresenter;
+ private WellDetailPresenterImpl detailPresenter;
+ private List geometryList = new ArrayList<>();
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_map_warning;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ 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
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ mapView.setAttributionTextVisible(false);//去掉左下角属性标识
+ mapView.setViewpointScaleAsync(64000);
+ ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
+ //创建底图、并设置底图图层
+ ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_NO_SERVICE_URL);
+ Basemap basemap = new Basemap(baseLayer);
+ arcGISMap.setBasemap(basemap);
+ mapView.setMap(arcGISMap);
+
+ int alarmTotal = (int) SaveKeyValues.getValue("alarmTotal", Constant.PAGE_LIMIT);
+ alarmListPresenter = new AlarmListPresenterImpl(this);
+ alarmListPresenter.onReadyRetrofitRequest(alarmTotal, 1);
+ detailPresenter = new WellDetailPresenterImpl(this);
+ }
+
+ @SuppressLint("ClickableViewAccessibility")
+ @Override
+ public void initEvent() {
+ mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(this, mapView) {
+ @Override
+ public boolean onSingleTapConfirmed(MotionEvent e) {
+ android.graphics.Point screenPoint = new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()));
+ Point clickPoint = mapView.screenToLocation(screenPoint);
+ if (geometryList.size() > 0) {
+ List tempList = new ArrayList<>();
+ for (WellDetailBean.FeaturesBean featuresBean : geometryList) {
+ WellDetailBean.FeaturesBean.GeometryBean dataBean = featuresBean.getGeometry();
+ if (Math.abs(dataBean.getX() - clickPoint.getX()) <= 10 * Constant.DELTA_LNG_10 &&
+ Math.abs(dataBean.getY() - clickPoint.getY()) <= 10 * Constant.DELTA_LNG_10) {
+ tempList.add(featuresBean);
+ }
+ }
+ if (tempList.size() > 0) {
+ QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context);
+ menuDialogBuilder.setTitle("请选择您要查看的窨井");
+ for (WellDetailBean.FeaturesBean dataBean : tempList) {
+ menuDialogBuilder.addItem(dataBean.getAttributes().get编号(), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_well, null);
+ TextView wellCodeView = popupView.findViewById(R.id.wellCodeView);
+ TextView wellTypeView = popupView.findViewById(R.id.wellTypeView);
+ TextView wellPositionView = popupView.findViewById(R.id.wellPositionView);
+
+ WellDetailBean.FeaturesBean.AttributesBean attributes = dataBean.getAttributes();
+ wellCodeView.setText(attributes.get编号());
+ wellTypeView.setText(attributes.get附属物名称());
+ wellPositionView.setText(attributes.get所属道路());
+
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 290))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(mapView);
+ }
+ });
+ }
+ menuDialogBuilder.create().show();
+ }
+ }
+ return super.onSingleTapConfirmed(e);
+ }
+ });
+ }
+
+ @OnClick({R.id.expandMapView, R.id.minusMapView, R.id.removeToLocalView})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.expandMapView:
+ mapView.setViewpointScaleAsync(mapView.getMapScale() * 0.5);
+ break;
+ case R.id.minusMapView:
+ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2);
+ break;
+ default:
+ break;
+ }
+ }
+
+ protected void onResume() {
+ super.onResume();
+ mapView.resume();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mapView.pause();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ mapView.dispose();
+ if (alarmListPresenter != null) {
+ alarmListPresenter.disposeRetrofitRequest();
+ }
+ if (detailPresenter != null) {
+ detailPresenter.disposeRetrofitRequest();
+ }
+ }
+
+ @Override
+ public void obtainAlarmResult(AlarmDataBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ for (AlarmDataBean.DataBean.RowsBean rowsBean : dataRows) {
+ String queryParam = "编号='" + rowsBean.getWellCode() + "'";
+ detailPresenter.onReadyRetrofitRequest(queryParam);
+ }
+ }
+ }
+
+ @Override
+ public void obtainWellDetailResult(WellDetailBean resultBean) {
+ List features = resultBean.getFeatures();
+ if (features.size() > 0) {
+ WellDetailBean.FeaturesBean featuresBean = features.get(0);
+ //将获取到的井数据缓存起来
+ geometryList.add(featuresBean);
+ WellDetailBean.FeaturesBean.GeometryBean geometryBean = featuresBean.getGeometry();
+ //每获取一个点就绘制出
+ addMarker(new Point(geometryBean.getX(), geometryBean.getY()));
+ }
+ }
+
+ private void addMarker(Point point) {
+ SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE, Color.RED, 10);
+ Graphic graphic = new Graphic(point, simpleMarkerSymbol);
+ GraphicsOverlay mGraphicsOverlay = new GraphicsOverlay();
+ ListenableList overlayGraphics = mGraphicsOverlay.getGraphics();
+ ListenableList graphicsOverlays = mapView.getGraphicsOverlays();
+ overlayGraphics.add(graphic);
+ graphicsOverlays.add(mGraphicsOverlay);
+ }
+}
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 b3fbd7b..e8cd7d5 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -87,9 +87,11 @@
public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图
public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图
public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层
+ public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层
//正式环境
// public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图
// public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图
// public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层
+// public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层
}
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 16a9d4c..f70d101 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
@@ -35,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.WellDetailBean;
import com.casic.dcms.bean.WellListBean;
import java.util.List;
@@ -768,4 +769,17 @@
@POST("/smartwell/well/batchBfcf")
Observable optionWellStatus(@Header("token") String token,
@Field("bfzt") String bfzt);
+
+ /**
+ * 井详情
+ *
+ * http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer/0/query?f=json&inSr=4326&outSR=4326&outFields=*&returnGeometry=true&where=编号='GX_WSD_4107_HLDD154'
+ */
+ @GET("/arcgis/rest/services/fsw/MapServer/0/query")
+ Observable obtainWellDetail(@Query("f") String f,
+ @Query("inSr") String inSr,
+ @Query("outSR") String outSR,
+ @Query("outFields") String outFields,
+ @Query("returnGeometry") boolean returnGeometry,
+ @Query("where") String where);
}
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 7c3705f..32a93a1 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
@@ -37,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.WellDetailBean;
import com.casic.dcms.bean.WellListBean;
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
@@ -724,10 +725,10 @@
/**
* 报警列表
*/
- public static Observable getAlarmListResult(int offset) {
+ public static Observable getAlarmListResult(int limit, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset);
+ return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", limit, offset);
}
/**
@@ -754,7 +755,8 @@
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);
+ return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc",
+ Constant.PAGE_LIMIT, offset);
}
/**
@@ -776,14 +778,17 @@
}
/**
- * 测试别的端口数据,永远放最后面
+ * 报警窨井详情
*/
- private static Retrofit createTestRetrofit() {
- return new Retrofit.Builder()
- .baseUrl("http://111.198.10.15:11643")
+ public static Observable getWellDetailResult(String where) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://111.198.10.15:13002")
.addConverterFactory(GsonConverterFactory.create())//Gson转换器
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(createOKHttpClient())//log拦截器
.build();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWellDetail("json", "4326", "4326", "*",
+ true, where);
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index febcd02..f845c47 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -95,6 +95,7 @@
+
fields;
+ private List features;
+
+ public String getDisplayFieldName() {
+ return displayFieldName;
+ }
+
+ public void setDisplayFieldName(String displayFieldName) {
+ this.displayFieldName = displayFieldName;
+ }
+
+ public FieldAliasesBean getFieldAliases() {
+ return fieldAliases;
+ }
+
+ public void setFieldAliases(FieldAliasesBean fieldAliases) {
+ this.fieldAliases = fieldAliases;
+ }
+
+ public String getGeometryType() {
+ return geometryType;
+ }
+
+ public void setGeometryType(String geometryType) {
+ this.geometryType = geometryType;
+ }
+
+ public SpatialReferenceBean getSpatialReference() {
+ return spatialReference;
+ }
+
+ public void setSpatialReference(SpatialReferenceBean spatialReference) {
+ this.spatialReference = spatialReference;
+ }
+
+ public List getFields() {
+ return fields;
+ }
+
+ public void setFields(List fields) {
+ this.fields = fields;
+ }
+
+ public List getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(List features) {
+ this.features = features;
+ }
+
+ public static class FieldAliasesBean {
+
+ private String objectid;
+ private String 编号;
+ private String 附属物编码;
+ private String 地面高程;
+ private String x坐标;
+ private String y坐标;
+ private String 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private String jd;
+ private String wd;
+
+ public String getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(String objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public String get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(String 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public String get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(String 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public String getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(String x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public String getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(String y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public String get井深() {
+ return 井深;
+ }
+
+ public void set井深(String 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public String getJd() {
+ return jd;
+ }
+
+ public void setJd(String jd) {
+ this.jd = jd;
+ }
+
+ public String getWd() {
+ return wd;
+ }
+
+ public void setWd(String wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class SpatialReferenceBean {
+
+ private int wkid;
+ private int latestWkid;
+
+ public int getWkid() {
+ return wkid;
+ }
+
+ public void setWkid(int wkid) {
+ this.wkid = wkid;
+ }
+
+ public int getLatestWkid() {
+ return latestWkid;
+ }
+
+ public void setLatestWkid(int latestWkid) {
+ this.latestWkid = latestWkid;
+ }
+ }
+
+ public static class FieldsBean {
+
+ private String name;
+ private String type;
+ private String alias;
+ private int length;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+ }
+
+ public static class FeaturesBean {
+
+ private AttributesBean attributes;
+ private GeometryBean geometry;
+
+ public AttributesBean getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AttributesBean attributes) {
+ this.attributes = attributes;
+ }
+
+ public GeometryBean getGeometry() {
+ return geometry;
+ }
+
+ public void setGeometry(GeometryBean geometry) {
+ this.geometry = geometry;
+ }
+
+ public static class AttributesBean {
+ /**
+ * objectid : 3984
+ * 编号 : GX_WSD_4107_HLDD150
+ * 附属物编码 : 4107
+ * 地面高程 : 59.462
+ * x坐标 : 3071874.507
+ * y坐标 : 408323.999
+ * 井深 : 2.72
+ * 附属物名称 : 污水井
+ * 所属道路 : 活力大道
+ * 建设年代 :
+ * 权属单位 :
+ * 备注 :
+ * jd : 116.070072
+ * wd : 27.757135
+ */
+
+ private int objectid;
+ private String 编号;
+ private int 附属物编码;
+ private double 地面高程;
+ private double x坐标;
+ private double y坐标;
+ private double 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private double jd;
+ private double wd;
+
+ public int getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(int objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public int get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(int 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public double get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(double 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public double getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(double x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public double getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(double y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public double get井深() {
+ return 井深;
+ }
+
+ public void set井深(double 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public double getJd() {
+ return jd;
+ }
+
+ public void setJd(double jd) {
+ this.jd = jd;
+ }
+
+ public double getWd() {
+ return wd;
+ }
+
+ public void setWd(double wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class GeometryBean {
+ /**
+ * x : 116.07007205499997
+ * y : 27.757134534999977
+ */
+
+ private double x;
+ private double y;
+
+ public double getX() {
+ return x;
+ }
+
+ public void setX(double x) {
+ this.x = x;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ public void setY(double y) {
+ this.y = y;
+ }
+ }
+ }
+}
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
index 5f5b8a9..1117853 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
@@ -24,8 +24,8 @@
}
@Override
- public Subscription sendRetrofitRequest(int offset) {
- Observable observable = RetrofitServiceManager.getAlarmListResult(offset);
+ public Subscription sendRetrofitRequest(int limit,int offset) {
+ Observable observable = RetrofitServiceManager.getAlarmListResult(limit, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
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
index fc8b4ce..d9f08dc 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
@@ -3,5 +3,5 @@
import rx.Subscription;
public interface IAlarmListModel {
- Subscription sendRetrofitRequest(int offset);
+ Subscription sendRetrofitRequest(int limit,int offset);
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
new file mode 100644
index 0000000..1db090e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IWellDetailModel {
+ Subscription sendRetrofitRequest(String where);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
new file mode 100644
index 0000000..f9e7a3e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.WellDetailBean;
+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 WellDetailModelImpl implements IWellDetailModel {
+
+ private OnGetDetailListener listener;
+
+ public WellDetailModelImpl(OnGetDetailListener listListener) {
+ this.listener = listListener;
+ }
+
+ public interface OnGetDetailListener {
+ void onSuccess(WellDetailBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String where) {
+ Observable observable = RetrofitServiceManager.getWellDetailResult(where);
+ 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(WellDetailBean resultBean) {
+ if (resultBean != null) {
+ listener.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
index 624715b..1851e54 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
@@ -16,8 +16,8 @@
}
@Override
- public void onReadyRetrofitRequest(int offset) {
- addSubscription(model.sendRetrofitRequest(offset));
+ public void onReadyRetrofitRequest(int limit, int offset) {
+ addSubscription(model.sendRetrofitRequest(limit, offset));
}
@Override
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
index 550deec..2408f94 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
@@ -1,7 +1,7 @@
package com.casic.dcms.mvp.presenter;
public interface IAlarmListPresenter {
- void onReadyRetrofitRequest(int offset);
+ void onReadyRetrofitRequest(int limit,int offset);
void disposeRetrofitRequest();
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
new file mode 100644
index 0000000..e968509
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IWellDetailPresenter {
+ void onReadyRetrofitRequest(String where);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
new file mode 100644
index 0000000..1a123f1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.WellDetailModelImpl;
+import com.casic.dcms.mvp.view.IWellDetailView;
+
+public class WellDetailPresenterImpl extends BasePresenter implements IWellDetailPresenter, WellDetailModelImpl.OnGetDetailListener {
+
+ private IWellDetailView view;
+ private WellDetailModelImpl actionModel;
+
+ public WellDetailPresenterImpl(IWellDetailView detailView) {
+ this.view = detailView;
+ actionModel = new WellDetailModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String where) {
+ addSubscription(actionModel.sendRetrofitRequest(where));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(WellDetailBean resultBean) {
+ view.obtainWellDetailResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
new file mode 100644
index 0000000..2d01903
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.WellDetailBean;
+
+public interface IWellDetailView {
+ void obtainWellDetailResult(WellDetailBean resultBean);
+}
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 b1b7352..a58662d 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -27,6 +27,7 @@
import com.casic.dcms.mvp.view.ICancelAlarmView;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.CancelAlarmDialog;
@@ -105,7 +106,7 @@
showBatchCancelDialog();
break;
case 1:
-
+ startActivity(new Intent(context, WarningOnMapActivity.class));
break;
case 2:
startActivity(new Intent(context, WellListActivity.class));
@@ -123,7 +124,7 @@
@Override
public void initData() {
alarmListPresenter = new AlarmListPresenterImpl(this);
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
weakReferenceHandler = new WeakReferenceHandler(this);
@@ -138,7 +139,7 @@
isRefresh = true;
//刷新之后页码重置
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@@ -146,7 +147,7 @@
public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
isLoadMore = true;
pageIndex++;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
}
@@ -231,7 +232,7 @@
//取消成功之后自动刷新列表
isRefresh = true;
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
} else {
ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR);
}
@@ -240,6 +241,7 @@
@Override
public void obtainAlarmResult(AlarmDataBean resultBean) {
if (resultBean.isSuccess()) {
+ SaveKeyValues.putValue("alarmTotal", resultBean.getData().getTotal());
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
diff --git a/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java
new file mode 100644
index 0000000..b318fe0
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java
@@ -0,0 +1,221 @@
+package com.casic.dcms.ui;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.AlarmDataBean;
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl;
+import com.casic.dcms.mvp.presenter.WellDetailPresenterImpl;
+import com.casic.dcms.mvp.view.IAlarmListView;
+import com.casic.dcms.mvp.view.IWellDetailView;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.esri.arcgisruntime.geometry.Point;
+import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
+import com.esri.arcgisruntime.mapping.ArcGISMap;
+import com.esri.arcgisruntime.mapping.Basemap;
+import com.esri.arcgisruntime.mapping.BasemapStyle;
+import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
+import com.esri.arcgisruntime.mapping.view.Graphic;
+import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
+import com.esri.arcgisruntime.mapping.view.MapView;
+import com.esri.arcgisruntime.symbology.SimpleMarkerSymbol;
+import com.esri.arcgisruntime.util.ListenableList;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.popup.QMUIPopup;
+import com.qmuiteam.qmui.widget.popup.QMUIPopups;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class WarningOnMapActivity extends BaseActivity implements View.OnClickListener, IAlarmListView,
+ IWellDetailView {
+
+ private static final String TAG = "WarningOnMapActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.mapView)
+ MapView mapView;
+
+ private AlarmListPresenterImpl alarmListPresenter;
+ private WellDetailPresenterImpl detailPresenter;
+ private List geometryList = new ArrayList<>();
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_map_warning;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ 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
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ mapView.setAttributionTextVisible(false);//去掉左下角属性标识
+ mapView.setViewpointScaleAsync(64000);
+ ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
+ //创建底图、并设置底图图层
+ ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_NO_SERVICE_URL);
+ Basemap basemap = new Basemap(baseLayer);
+ arcGISMap.setBasemap(basemap);
+ mapView.setMap(arcGISMap);
+
+ int alarmTotal = (int) SaveKeyValues.getValue("alarmTotal", Constant.PAGE_LIMIT);
+ alarmListPresenter = new AlarmListPresenterImpl(this);
+ alarmListPresenter.onReadyRetrofitRequest(alarmTotal, 1);
+ detailPresenter = new WellDetailPresenterImpl(this);
+ }
+
+ @SuppressLint("ClickableViewAccessibility")
+ @Override
+ public void initEvent() {
+ mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(this, mapView) {
+ @Override
+ public boolean onSingleTapConfirmed(MotionEvent e) {
+ android.graphics.Point screenPoint = new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()));
+ Point clickPoint = mapView.screenToLocation(screenPoint);
+ if (geometryList.size() > 0) {
+ List tempList = new ArrayList<>();
+ for (WellDetailBean.FeaturesBean featuresBean : geometryList) {
+ WellDetailBean.FeaturesBean.GeometryBean dataBean = featuresBean.getGeometry();
+ if (Math.abs(dataBean.getX() - clickPoint.getX()) <= 10 * Constant.DELTA_LNG_10 &&
+ Math.abs(dataBean.getY() - clickPoint.getY()) <= 10 * Constant.DELTA_LNG_10) {
+ tempList.add(featuresBean);
+ }
+ }
+ if (tempList.size() > 0) {
+ QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context);
+ menuDialogBuilder.setTitle("请选择您要查看的窨井");
+ for (WellDetailBean.FeaturesBean dataBean : tempList) {
+ menuDialogBuilder.addItem(dataBean.getAttributes().get编号(), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_well, null);
+ TextView wellCodeView = popupView.findViewById(R.id.wellCodeView);
+ TextView wellTypeView = popupView.findViewById(R.id.wellTypeView);
+ TextView wellPositionView = popupView.findViewById(R.id.wellPositionView);
+
+ WellDetailBean.FeaturesBean.AttributesBean attributes = dataBean.getAttributes();
+ wellCodeView.setText(attributes.get编号());
+ wellTypeView.setText(attributes.get附属物名称());
+ wellPositionView.setText(attributes.get所属道路());
+
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 290))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(mapView);
+ }
+ });
+ }
+ menuDialogBuilder.create().show();
+ }
+ }
+ return super.onSingleTapConfirmed(e);
+ }
+ });
+ }
+
+ @OnClick({R.id.expandMapView, R.id.minusMapView, R.id.removeToLocalView})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.expandMapView:
+ mapView.setViewpointScaleAsync(mapView.getMapScale() * 0.5);
+ break;
+ case R.id.minusMapView:
+ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2);
+ break;
+ default:
+ break;
+ }
+ }
+
+ protected void onResume() {
+ super.onResume();
+ mapView.resume();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mapView.pause();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ mapView.dispose();
+ if (alarmListPresenter != null) {
+ alarmListPresenter.disposeRetrofitRequest();
+ }
+ if (detailPresenter != null) {
+ detailPresenter.disposeRetrofitRequest();
+ }
+ }
+
+ @Override
+ public void obtainAlarmResult(AlarmDataBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ for (AlarmDataBean.DataBean.RowsBean rowsBean : dataRows) {
+ String queryParam = "编号='" + rowsBean.getWellCode() + "'";
+ detailPresenter.onReadyRetrofitRequest(queryParam);
+ }
+ }
+ }
+
+ @Override
+ public void obtainWellDetailResult(WellDetailBean resultBean) {
+ List features = resultBean.getFeatures();
+ if (features.size() > 0) {
+ WellDetailBean.FeaturesBean featuresBean = features.get(0);
+ //将获取到的井数据缓存起来
+ geometryList.add(featuresBean);
+ WellDetailBean.FeaturesBean.GeometryBean geometryBean = featuresBean.getGeometry();
+ //每获取一个点就绘制出
+ addMarker(new Point(geometryBean.getX(), geometryBean.getY()));
+ }
+ }
+
+ private void addMarker(Point point) {
+ SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE, Color.RED, 10);
+ Graphic graphic = new Graphic(point, simpleMarkerSymbol);
+ GraphicsOverlay mGraphicsOverlay = new GraphicsOverlay();
+ ListenableList overlayGraphics = mGraphicsOverlay.getGraphics();
+ ListenableList graphicsOverlays = mapView.getGraphicsOverlays();
+ overlayGraphics.add(graphic);
+ graphicsOverlays.add(mGraphicsOverlay);
+ }
+}
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 b3fbd7b..e8cd7d5 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -87,9 +87,11 @@
public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图
public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图
public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层
+ public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层
//正式环境
// public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图
// public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图
// public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层
+// public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层
}
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 16a9d4c..f70d101 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
@@ -35,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.WellDetailBean;
import com.casic.dcms.bean.WellListBean;
import java.util.List;
@@ -768,4 +769,17 @@
@POST("/smartwell/well/batchBfcf")
Observable optionWellStatus(@Header("token") String token,
@Field("bfzt") String bfzt);
+
+ /**
+ * 井详情
+ *
+ * http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer/0/query?f=json&inSr=4326&outSR=4326&outFields=*&returnGeometry=true&where=编号='GX_WSD_4107_HLDD154'
+ */
+ @GET("/arcgis/rest/services/fsw/MapServer/0/query")
+ Observable obtainWellDetail(@Query("f") String f,
+ @Query("inSr") String inSr,
+ @Query("outSR") String outSR,
+ @Query("outFields") String outFields,
+ @Query("returnGeometry") boolean returnGeometry,
+ @Query("where") String where);
}
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 7c3705f..32a93a1 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
@@ -37,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.WellDetailBean;
import com.casic.dcms.bean.WellListBean;
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
@@ -724,10 +725,10 @@
/**
* 报警列表
*/
- public static Observable getAlarmListResult(int offset) {
+ public static Observable getAlarmListResult(int limit, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset);
+ return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", limit, offset);
}
/**
@@ -754,7 +755,8 @@
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);
+ return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc",
+ Constant.PAGE_LIMIT, offset);
}
/**
@@ -776,14 +778,17 @@
}
/**
- * 测试别的端口数据,永远放最后面
+ * 报警窨井详情
*/
- private static Retrofit createTestRetrofit() {
- return new Retrofit.Builder()
- .baseUrl("http://111.198.10.15:11643")
+ public static Observable getWellDetailResult(String where) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://111.198.10.15:13002")
.addConverterFactory(GsonConverterFactory.create())//Gson转换器
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(createOKHttpClient())//log拦截器
.build();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWellDetail("json", "4326", "4326", "*",
+ true, where);
}
}
diff --git a/app/src/main/res/drawable/dash_white_line.xml b/app/src/main/res/drawable/dash_white_line.xml
new file mode 100644
index 0000000..d9f7330
--- /dev/null
+++ b/app/src/main/res/drawable/dash_white_line.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index febcd02..f845c47 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -95,6 +95,7 @@
+
fields;
+ private List features;
+
+ public String getDisplayFieldName() {
+ return displayFieldName;
+ }
+
+ public void setDisplayFieldName(String displayFieldName) {
+ this.displayFieldName = displayFieldName;
+ }
+
+ public FieldAliasesBean getFieldAliases() {
+ return fieldAliases;
+ }
+
+ public void setFieldAliases(FieldAliasesBean fieldAliases) {
+ this.fieldAliases = fieldAliases;
+ }
+
+ public String getGeometryType() {
+ return geometryType;
+ }
+
+ public void setGeometryType(String geometryType) {
+ this.geometryType = geometryType;
+ }
+
+ public SpatialReferenceBean getSpatialReference() {
+ return spatialReference;
+ }
+
+ public void setSpatialReference(SpatialReferenceBean spatialReference) {
+ this.spatialReference = spatialReference;
+ }
+
+ public List getFields() {
+ return fields;
+ }
+
+ public void setFields(List fields) {
+ this.fields = fields;
+ }
+
+ public List getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(List features) {
+ this.features = features;
+ }
+
+ public static class FieldAliasesBean {
+
+ private String objectid;
+ private String 编号;
+ private String 附属物编码;
+ private String 地面高程;
+ private String x坐标;
+ private String y坐标;
+ private String 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private String jd;
+ private String wd;
+
+ public String getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(String objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public String get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(String 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public String get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(String 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public String getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(String x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public String getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(String y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public String get井深() {
+ return 井深;
+ }
+
+ public void set井深(String 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public String getJd() {
+ return jd;
+ }
+
+ public void setJd(String jd) {
+ this.jd = jd;
+ }
+
+ public String getWd() {
+ return wd;
+ }
+
+ public void setWd(String wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class SpatialReferenceBean {
+
+ private int wkid;
+ private int latestWkid;
+
+ public int getWkid() {
+ return wkid;
+ }
+
+ public void setWkid(int wkid) {
+ this.wkid = wkid;
+ }
+
+ public int getLatestWkid() {
+ return latestWkid;
+ }
+
+ public void setLatestWkid(int latestWkid) {
+ this.latestWkid = latestWkid;
+ }
+ }
+
+ public static class FieldsBean {
+
+ private String name;
+ private String type;
+ private String alias;
+ private int length;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+ }
+
+ public static class FeaturesBean {
+
+ private AttributesBean attributes;
+ private GeometryBean geometry;
+
+ public AttributesBean getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AttributesBean attributes) {
+ this.attributes = attributes;
+ }
+
+ public GeometryBean getGeometry() {
+ return geometry;
+ }
+
+ public void setGeometry(GeometryBean geometry) {
+ this.geometry = geometry;
+ }
+
+ public static class AttributesBean {
+ /**
+ * objectid : 3984
+ * 编号 : GX_WSD_4107_HLDD150
+ * 附属物编码 : 4107
+ * 地面高程 : 59.462
+ * x坐标 : 3071874.507
+ * y坐标 : 408323.999
+ * 井深 : 2.72
+ * 附属物名称 : 污水井
+ * 所属道路 : 活力大道
+ * 建设年代 :
+ * 权属单位 :
+ * 备注 :
+ * jd : 116.070072
+ * wd : 27.757135
+ */
+
+ private int objectid;
+ private String 编号;
+ private int 附属物编码;
+ private double 地面高程;
+ private double x坐标;
+ private double y坐标;
+ private double 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private double jd;
+ private double wd;
+
+ public int getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(int objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public int get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(int 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public double get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(double 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public double getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(double x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public double getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(double y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public double get井深() {
+ return 井深;
+ }
+
+ public void set井深(double 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public double getJd() {
+ return jd;
+ }
+
+ public void setJd(double jd) {
+ this.jd = jd;
+ }
+
+ public double getWd() {
+ return wd;
+ }
+
+ public void setWd(double wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class GeometryBean {
+ /**
+ * x : 116.07007205499997
+ * y : 27.757134534999977
+ */
+
+ private double x;
+ private double y;
+
+ public double getX() {
+ return x;
+ }
+
+ public void setX(double x) {
+ this.x = x;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ public void setY(double y) {
+ this.y = y;
+ }
+ }
+ }
+}
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
index 5f5b8a9..1117853 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
@@ -24,8 +24,8 @@
}
@Override
- public Subscription sendRetrofitRequest(int offset) {
- Observable observable = RetrofitServiceManager.getAlarmListResult(offset);
+ public Subscription sendRetrofitRequest(int limit,int offset) {
+ Observable observable = RetrofitServiceManager.getAlarmListResult(limit, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
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
index fc8b4ce..d9f08dc 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
@@ -3,5 +3,5 @@
import rx.Subscription;
public interface IAlarmListModel {
- Subscription sendRetrofitRequest(int offset);
+ Subscription sendRetrofitRequest(int limit,int offset);
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
new file mode 100644
index 0000000..1db090e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IWellDetailModel {
+ Subscription sendRetrofitRequest(String where);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
new file mode 100644
index 0000000..f9e7a3e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.WellDetailBean;
+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 WellDetailModelImpl implements IWellDetailModel {
+
+ private OnGetDetailListener listener;
+
+ public WellDetailModelImpl(OnGetDetailListener listListener) {
+ this.listener = listListener;
+ }
+
+ public interface OnGetDetailListener {
+ void onSuccess(WellDetailBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String where) {
+ Observable observable = RetrofitServiceManager.getWellDetailResult(where);
+ 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(WellDetailBean resultBean) {
+ if (resultBean != null) {
+ listener.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
index 624715b..1851e54 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
@@ -16,8 +16,8 @@
}
@Override
- public void onReadyRetrofitRequest(int offset) {
- addSubscription(model.sendRetrofitRequest(offset));
+ public void onReadyRetrofitRequest(int limit, int offset) {
+ addSubscription(model.sendRetrofitRequest(limit, offset));
}
@Override
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
index 550deec..2408f94 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
@@ -1,7 +1,7 @@
package com.casic.dcms.mvp.presenter;
public interface IAlarmListPresenter {
- void onReadyRetrofitRequest(int offset);
+ void onReadyRetrofitRequest(int limit,int offset);
void disposeRetrofitRequest();
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
new file mode 100644
index 0000000..e968509
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IWellDetailPresenter {
+ void onReadyRetrofitRequest(String where);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
new file mode 100644
index 0000000..1a123f1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.WellDetailModelImpl;
+import com.casic.dcms.mvp.view.IWellDetailView;
+
+public class WellDetailPresenterImpl extends BasePresenter implements IWellDetailPresenter, WellDetailModelImpl.OnGetDetailListener {
+
+ private IWellDetailView view;
+ private WellDetailModelImpl actionModel;
+
+ public WellDetailPresenterImpl(IWellDetailView detailView) {
+ this.view = detailView;
+ actionModel = new WellDetailModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String where) {
+ addSubscription(actionModel.sendRetrofitRequest(where));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(WellDetailBean resultBean) {
+ view.obtainWellDetailResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
new file mode 100644
index 0000000..2d01903
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.WellDetailBean;
+
+public interface IWellDetailView {
+ void obtainWellDetailResult(WellDetailBean resultBean);
+}
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 b1b7352..a58662d 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -27,6 +27,7 @@
import com.casic.dcms.mvp.view.ICancelAlarmView;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.CancelAlarmDialog;
@@ -105,7 +106,7 @@
showBatchCancelDialog();
break;
case 1:
-
+ startActivity(new Intent(context, WarningOnMapActivity.class));
break;
case 2:
startActivity(new Intent(context, WellListActivity.class));
@@ -123,7 +124,7 @@
@Override
public void initData() {
alarmListPresenter = new AlarmListPresenterImpl(this);
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
weakReferenceHandler = new WeakReferenceHandler(this);
@@ -138,7 +139,7 @@
isRefresh = true;
//刷新之后页码重置
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@@ -146,7 +147,7 @@
public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
isLoadMore = true;
pageIndex++;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
}
@@ -231,7 +232,7 @@
//取消成功之后自动刷新列表
isRefresh = true;
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
} else {
ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR);
}
@@ -240,6 +241,7 @@
@Override
public void obtainAlarmResult(AlarmDataBean resultBean) {
if (resultBean.isSuccess()) {
+ SaveKeyValues.putValue("alarmTotal", resultBean.getData().getTotal());
List dataRows = resultBean.getData().getRows();
if (isRefresh) {
dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题
diff --git a/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java b/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java
new file mode 100644
index 0000000..b318fe0
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/ui/WarningOnMapActivity.java
@@ -0,0 +1,221 @@
+package com.casic.dcms.ui;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+
+import com.casic.dcms.R;
+import com.casic.dcms.base.BaseActivity;
+import com.casic.dcms.bean.AlarmDataBean;
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.presenter.AlarmListPresenterImpl;
+import com.casic.dcms.mvp.presenter.WellDetailPresenterImpl;
+import com.casic.dcms.mvp.view.IAlarmListView;
+import com.casic.dcms.mvp.view.IWellDetailView;
+import com.casic.dcms.utils.Constant;
+import com.casic.dcms.utils.SaveKeyValues;
+import com.esri.arcgisruntime.geometry.Point;
+import com.esri.arcgisruntime.layers.ArcGISTiledLayer;
+import com.esri.arcgisruntime.mapping.ArcGISMap;
+import com.esri.arcgisruntime.mapping.Basemap;
+import com.esri.arcgisruntime.mapping.BasemapStyle;
+import com.esri.arcgisruntime.mapping.view.DefaultMapViewOnTouchListener;
+import com.esri.arcgisruntime.mapping.view.Graphic;
+import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
+import com.esri.arcgisruntime.mapping.view.MapView;
+import com.esri.arcgisruntime.symbology.SimpleMarkerSymbol;
+import com.esri.arcgisruntime.util.ListenableList;
+import com.qmuiteam.qmui.util.QMUIDisplayHelper;
+import com.qmuiteam.qmui.widget.QMUITopBarLayout;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.popup.QMUIPopup;
+import com.qmuiteam.qmui.widget.popup.QMUIPopups;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class WarningOnMapActivity extends BaseActivity implements View.OnClickListener, IAlarmListView,
+ IWellDetailView {
+
+ private static final String TAG = "WarningOnMapActivity";
+ private Context context = this;
+ @BindView(R.id.topLayout)
+ QMUITopBarLayout topLayout;
+ @BindView(R.id.mapView)
+ MapView mapView;
+
+ private AlarmListPresenterImpl alarmListPresenter;
+ private WellDetailPresenterImpl detailPresenter;
+ private List geometryList = new ArrayList<>();
+
+ @Override
+ public int initLayoutView() {
+ return R.layout.activity_map_warning;
+ }
+
+ @Override
+ protected void setupTopBarLayout() {
+ 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
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ mapView.setAttributionTextVisible(false);//去掉左下角属性标识
+ mapView.setViewpointScaleAsync(64000);
+ ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS);
+ //创建底图、并设置底图图层
+ ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_NO_SERVICE_URL);
+ Basemap basemap = new Basemap(baseLayer);
+ arcGISMap.setBasemap(basemap);
+ mapView.setMap(arcGISMap);
+
+ int alarmTotal = (int) SaveKeyValues.getValue("alarmTotal", Constant.PAGE_LIMIT);
+ alarmListPresenter = new AlarmListPresenterImpl(this);
+ alarmListPresenter.onReadyRetrofitRequest(alarmTotal, 1);
+ detailPresenter = new WellDetailPresenterImpl(this);
+ }
+
+ @SuppressLint("ClickableViewAccessibility")
+ @Override
+ public void initEvent() {
+ mapView.setOnTouchListener(new DefaultMapViewOnTouchListener(this, mapView) {
+ @Override
+ public boolean onSingleTapConfirmed(MotionEvent e) {
+ android.graphics.Point screenPoint = new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()));
+ Point clickPoint = mapView.screenToLocation(screenPoint);
+ if (geometryList.size() > 0) {
+ List tempList = new ArrayList<>();
+ for (WellDetailBean.FeaturesBean featuresBean : geometryList) {
+ WellDetailBean.FeaturesBean.GeometryBean dataBean = featuresBean.getGeometry();
+ if (Math.abs(dataBean.getX() - clickPoint.getX()) <= 10 * Constant.DELTA_LNG_10 &&
+ Math.abs(dataBean.getY() - clickPoint.getY()) <= 10 * Constant.DELTA_LNG_10) {
+ tempList.add(featuresBean);
+ }
+ }
+ if (tempList.size() > 0) {
+ QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context);
+ menuDialogBuilder.setTitle("请选择您要查看的窨井");
+ for (WellDetailBean.FeaturesBean dataBean : tempList) {
+ menuDialogBuilder.addItem(dataBean.getAttributes().get编号(), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+
+ View popupView = LayoutInflater.from(context).inflate(R.layout.popu_well, null);
+ TextView wellCodeView = popupView.findViewById(R.id.wellCodeView);
+ TextView wellTypeView = popupView.findViewById(R.id.wellTypeView);
+ TextView wellPositionView = popupView.findViewById(R.id.wellPositionView);
+
+ WellDetailBean.FeaturesBean.AttributesBean attributes = dataBean.getAttributes();
+ wellCodeView.setText(attributes.get编号());
+ wellTypeView.setText(attributes.get附属物名称());
+ wellPositionView.setText(attributes.get所属道路());
+
+ QMUIPopups.popup(context, QMUIDisplayHelper.dp2px(context, 290))
+ .preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
+ .view(popupView)
+ .edgeProtection(QMUIDisplayHelper.dp2px(context, 20))
+ .dimAmount(0.6f)
+ .animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
+ .onDismiss(null)
+ .show(mapView);
+ }
+ });
+ }
+ menuDialogBuilder.create().show();
+ }
+ }
+ return super.onSingleTapConfirmed(e);
+ }
+ });
+ }
+
+ @OnClick({R.id.expandMapView, R.id.minusMapView, R.id.removeToLocalView})
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.expandMapView:
+ mapView.setViewpointScaleAsync(mapView.getMapScale() * 0.5);
+ break;
+ case R.id.minusMapView:
+ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2);
+ break;
+ default:
+ break;
+ }
+ }
+
+ protected void onResume() {
+ super.onResume();
+ mapView.resume();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mapView.pause();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ mapView.dispose();
+ if (alarmListPresenter != null) {
+ alarmListPresenter.disposeRetrofitRequest();
+ }
+ if (detailPresenter != null) {
+ detailPresenter.disposeRetrofitRequest();
+ }
+ }
+
+ @Override
+ public void obtainAlarmResult(AlarmDataBean resultBean) {
+ if (resultBean.isSuccess()) {
+ List dataRows = resultBean.getData().getRows();
+ for (AlarmDataBean.DataBean.RowsBean rowsBean : dataRows) {
+ String queryParam = "编号='" + rowsBean.getWellCode() + "'";
+ detailPresenter.onReadyRetrofitRequest(queryParam);
+ }
+ }
+ }
+
+ @Override
+ public void obtainWellDetailResult(WellDetailBean resultBean) {
+ List features = resultBean.getFeatures();
+ if (features.size() > 0) {
+ WellDetailBean.FeaturesBean featuresBean = features.get(0);
+ //将获取到的井数据缓存起来
+ geometryList.add(featuresBean);
+ WellDetailBean.FeaturesBean.GeometryBean geometryBean = featuresBean.getGeometry();
+ //每获取一个点就绘制出
+ addMarker(new Point(geometryBean.getX(), geometryBean.getY()));
+ }
+ }
+
+ private void addMarker(Point point) {
+ SimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.Style.CIRCLE, Color.RED, 10);
+ Graphic graphic = new Graphic(point, simpleMarkerSymbol);
+ GraphicsOverlay mGraphicsOverlay = new GraphicsOverlay();
+ ListenableList overlayGraphics = mGraphicsOverlay.getGraphics();
+ ListenableList graphicsOverlays = mapView.getGraphicsOverlays();
+ overlayGraphics.add(graphic);
+ graphicsOverlays.add(mGraphicsOverlay);
+ }
+}
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 b3fbd7b..e8cd7d5 100644
--- a/app/src/main/java/com/casic/dcms/utils/Constant.java
+++ b/app/src/main/java/com/casic/dcms/utils/Constant.java
@@ -87,9 +87,11 @@
public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图
public static final String BASE_MAP_NO_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图
public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层
+ public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层
//正式环境
// public static final String BASE_MAP_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图
// public static final String BASE_MAP_NO_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crdt_1/MapServer";//崇仁城管地图不带网格底图
// public static final String COMPONENT_SERVICE_URL = "http://223.82.47.232:11408/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层
+// public static final String WELL_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer";//崇仁窨井图层
}
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 16a9d4c..f70d101 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
@@ -35,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.WellDetailBean;
import com.casic.dcms.bean.WellListBean;
import java.util.List;
@@ -768,4 +769,17 @@
@POST("/smartwell/well/batchBfcf")
Observable optionWellStatus(@Header("token") String token,
@Field("bfzt") String bfzt);
+
+ /**
+ * 井详情
+ *
+ * http://111.198.10.15:13002/arcgis/rest/services/fsw/MapServer/0/query?f=json&inSr=4326&outSR=4326&outFields=*&returnGeometry=true&where=编号='GX_WSD_4107_HLDD154'
+ */
+ @GET("/arcgis/rest/services/fsw/MapServer/0/query")
+ Observable obtainWellDetail(@Query("f") String f,
+ @Query("inSr") String inSr,
+ @Query("outSR") String outSR,
+ @Query("outFields") String outFields,
+ @Query("returnGeometry") boolean returnGeometry,
+ @Query("where") String where);
}
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 7c3705f..32a93a1 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
@@ -37,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.WellDetailBean;
import com.casic.dcms.bean.WellListBean;
import com.casic.dcms.utils.AuthenticationHelper;
import com.casic.dcms.utils.Constant;
@@ -724,10 +725,10 @@
/**
* 报警列表
*/
- public static Observable getAlarmListResult(int offset) {
+ public static Observable getAlarmListResult(int limit, int offset) {
Retrofit retrofit = createRetrofit();
RetrofitService service = retrofit.create(RetrofitService.class);
- return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", Constant.PAGE_LIMIT, offset);
+ return service.obtainAlarmList(AuthenticationHelper.getToken(), "1", limit, offset);
}
/**
@@ -754,7 +755,8 @@
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);
+ return service.obtainWellList(AuthenticationHelper.getToken(), "wellCode", "asc",
+ Constant.PAGE_LIMIT, offset);
}
/**
@@ -776,14 +778,17 @@
}
/**
- * 测试别的端口数据,永远放最后面
+ * 报警窨井详情
*/
- private static Retrofit createTestRetrofit() {
- return new Retrofit.Builder()
- .baseUrl("http://111.198.10.15:11643")
+ public static Observable getWellDetailResult(String where) {
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://111.198.10.15:13002")
.addConverterFactory(GsonConverterFactory.create())//Gson转换器
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(createOKHttpClient())//log拦截器
.build();
+ RetrofitService service = retrofit.create(RetrofitService.class);
+ return service.obtainWellDetail("json", "4326", "4326", "*",
+ true, where);
}
}
diff --git a/app/src/main/res/drawable/dash_white_line.xml b/app/src/main/res/drawable/dash_white_line.xml
new file mode 100644
index 0000000..d9f7330
--- /dev/null
+++ b/app/src/main/res/drawable/dash_white_line.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_dot_off.xml b/app/src/main/res/drawable/ic_dot_off.xml
deleted file mode 100644
index 859e9ca..0000000
--- a/app/src/main/res/drawable/ic_dot_off.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index febcd02..f845c47 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -95,6 +95,7 @@
+
fields;
+ private List features;
+
+ public String getDisplayFieldName() {
+ return displayFieldName;
+ }
+
+ public void setDisplayFieldName(String displayFieldName) {
+ this.displayFieldName = displayFieldName;
+ }
+
+ public FieldAliasesBean getFieldAliases() {
+ return fieldAliases;
+ }
+
+ public void setFieldAliases(FieldAliasesBean fieldAliases) {
+ this.fieldAliases = fieldAliases;
+ }
+
+ public String getGeometryType() {
+ return geometryType;
+ }
+
+ public void setGeometryType(String geometryType) {
+ this.geometryType = geometryType;
+ }
+
+ public SpatialReferenceBean getSpatialReference() {
+ return spatialReference;
+ }
+
+ public void setSpatialReference(SpatialReferenceBean spatialReference) {
+ this.spatialReference = spatialReference;
+ }
+
+ public List getFields() {
+ return fields;
+ }
+
+ public void setFields(List fields) {
+ this.fields = fields;
+ }
+
+ public List getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(List features) {
+ this.features = features;
+ }
+
+ public static class FieldAliasesBean {
+
+ private String objectid;
+ private String 编号;
+ private String 附属物编码;
+ private String 地面高程;
+ private String x坐标;
+ private String y坐标;
+ private String 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private String jd;
+ private String wd;
+
+ public String getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(String objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public String get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(String 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public String get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(String 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public String getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(String x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public String getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(String y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public String get井深() {
+ return 井深;
+ }
+
+ public void set井深(String 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public String getJd() {
+ return jd;
+ }
+
+ public void setJd(String jd) {
+ this.jd = jd;
+ }
+
+ public String getWd() {
+ return wd;
+ }
+
+ public void setWd(String wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class SpatialReferenceBean {
+
+ private int wkid;
+ private int latestWkid;
+
+ public int getWkid() {
+ return wkid;
+ }
+
+ public void setWkid(int wkid) {
+ this.wkid = wkid;
+ }
+
+ public int getLatestWkid() {
+ return latestWkid;
+ }
+
+ public void setLatestWkid(int latestWkid) {
+ this.latestWkid = latestWkid;
+ }
+ }
+
+ public static class FieldsBean {
+
+ private String name;
+ private String type;
+ private String alias;
+ private int length;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getAlias() {
+ return alias;
+ }
+
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+ }
+
+ public static class FeaturesBean {
+
+ private AttributesBean attributes;
+ private GeometryBean geometry;
+
+ public AttributesBean getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AttributesBean attributes) {
+ this.attributes = attributes;
+ }
+
+ public GeometryBean getGeometry() {
+ return geometry;
+ }
+
+ public void setGeometry(GeometryBean geometry) {
+ this.geometry = geometry;
+ }
+
+ public static class AttributesBean {
+ /**
+ * objectid : 3984
+ * 编号 : GX_WSD_4107_HLDD150
+ * 附属物编码 : 4107
+ * 地面高程 : 59.462
+ * x坐标 : 3071874.507
+ * y坐标 : 408323.999
+ * 井深 : 2.72
+ * 附属物名称 : 污水井
+ * 所属道路 : 活力大道
+ * 建设年代 :
+ * 权属单位 :
+ * 备注 :
+ * jd : 116.070072
+ * wd : 27.757135
+ */
+
+ private int objectid;
+ private String 编号;
+ private int 附属物编码;
+ private double 地面高程;
+ private double x坐标;
+ private double y坐标;
+ private double 井深;
+ private String 附属物名称;
+ private String 所属道路;
+ private String 建设年代;
+ private String 权属单位;
+ private String 备注;
+ private double jd;
+ private double wd;
+
+ public int getObjectid() {
+ return objectid;
+ }
+
+ public void setObjectid(int objectid) {
+ this.objectid = objectid;
+ }
+
+ public String get编号() {
+ return 编号;
+ }
+
+ public void set编号(String 编号) {
+ this.编号 = 编号;
+ }
+
+ public int get附属物编码() {
+ return 附属物编码;
+ }
+
+ public void set附属物编码(int 附属物编码) {
+ this.附属物编码 = 附属物编码;
+ }
+
+ public double get地面高程() {
+ return 地面高程;
+ }
+
+ public void set地面高程(double 地面高程) {
+ this.地面高程 = 地面高程;
+ }
+
+ public double getX坐标() {
+ return x坐标;
+ }
+
+ public void setX坐标(double x坐标) {
+ this.x坐标 = x坐标;
+ }
+
+ public double getY坐标() {
+ return y坐标;
+ }
+
+ public void setY坐标(double y坐标) {
+ this.y坐标 = y坐标;
+ }
+
+ public double get井深() {
+ return 井深;
+ }
+
+ public void set井深(double 井深) {
+ this.井深 = 井深;
+ }
+
+ public String get附属物名称() {
+ return 附属物名称;
+ }
+
+ public void set附属物名称(String 附属物名称) {
+ this.附属物名称 = 附属物名称;
+ }
+
+ public String get所属道路() {
+ return 所属道路;
+ }
+
+ public void set所属道路(String 所属道路) {
+ this.所属道路 = 所属道路;
+ }
+
+ public String get建设年代() {
+ return 建设年代;
+ }
+
+ public void set建设年代(String 建设年代) {
+ this.建设年代 = 建设年代;
+ }
+
+ public String get权属单位() {
+ return 权属单位;
+ }
+
+ public void set权属单位(String 权属单位) {
+ this.权属单位 = 权属单位;
+ }
+
+ public String get备注() {
+ return 备注;
+ }
+
+ public void set备注(String 备注) {
+ this.备注 = 备注;
+ }
+
+ public double getJd() {
+ return jd;
+ }
+
+ public void setJd(double jd) {
+ this.jd = jd;
+ }
+
+ public double getWd() {
+ return wd;
+ }
+
+ public void setWd(double wd) {
+ this.wd = wd;
+ }
+ }
+
+ public static class GeometryBean {
+ /**
+ * x : 116.07007205499997
+ * y : 27.757134534999977
+ */
+
+ private double x;
+ private double y;
+
+ public double getX() {
+ return x;
+ }
+
+ public void setX(double x) {
+ this.x = x;
+ }
+
+ public double getY() {
+ return y;
+ }
+
+ public void setY(double y) {
+ this.y = y;
+ }
+ }
+ }
+}
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
index 5f5b8a9..1117853 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/AlarmListModelImpl.java
@@ -24,8 +24,8 @@
}
@Override
- public Subscription sendRetrofitRequest(int offset) {
- Observable observable = RetrofitServiceManager.getAlarmListResult(offset);
+ public Subscription sendRetrofitRequest(int limit,int offset) {
+ Observable observable = RetrofitServiceManager.getAlarmListResult(limit, offset);
return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() {
@Override
public void onCompleted() {
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
index fc8b4ce..d9f08dc 100644
--- a/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IAlarmListModel.java
@@ -3,5 +3,5 @@
import rx.Subscription;
public interface IAlarmListModel {
- Subscription sendRetrofitRequest(int offset);
+ Subscription sendRetrofitRequest(int limit,int offset);
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
new file mode 100644
index 0000000..1db090e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/IWellDetailModel.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.model;
+
+import rx.Subscription;
+
+public interface IWellDetailModel {
+ Subscription sendRetrofitRequest(String where);
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
new file mode 100644
index 0000000..f9e7a3e
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/model/WellDetailModelImpl.java
@@ -0,0 +1,50 @@
+package com.casic.dcms.mvp.model;
+
+import com.casic.dcms.bean.WellDetailBean;
+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 WellDetailModelImpl implements IWellDetailModel {
+
+ private OnGetDetailListener listener;
+
+ public WellDetailModelImpl(OnGetDetailListener listListener) {
+ this.listener = listListener;
+ }
+
+ public interface OnGetDetailListener {
+ void onSuccess(WellDetailBean resultBean);
+
+ void onFailure(Throwable throwable);
+ }
+
+ @Override
+ public Subscription sendRetrofitRequest(String where) {
+ Observable observable = RetrofitServiceManager.getWellDetailResult(where);
+ 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(WellDetailBean resultBean) {
+ if (resultBean != null) {
+ listener.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
index 624715b..1851e54 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/AlarmListPresenterImpl.java
@@ -16,8 +16,8 @@
}
@Override
- public void onReadyRetrofitRequest(int offset) {
- addSubscription(model.sendRetrofitRequest(offset));
+ public void onReadyRetrofitRequest(int limit, int offset) {
+ addSubscription(model.sendRetrofitRequest(limit, offset));
}
@Override
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
index 550deec..2408f94 100644
--- a/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IAlarmListPresenter.java
@@ -1,7 +1,7 @@
package com.casic.dcms.mvp.presenter;
public interface IAlarmListPresenter {
- void onReadyRetrofitRequest(int offset);
+ void onReadyRetrofitRequest(int limit,int offset);
void disposeRetrofitRequest();
}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
new file mode 100644
index 0000000..e968509
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IWellDetailPresenter.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.presenter;
+
+public interface IWellDetailPresenter {
+ void onReadyRetrofitRequest(String where);
+
+ void disposeRetrofitRequest();
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
new file mode 100644
index 0000000..1a123f1
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/presenter/WellDetailPresenterImpl.java
@@ -0,0 +1,37 @@
+package com.casic.dcms.mvp.presenter;
+
+import com.casic.dcms.bean.WellDetailBean;
+import com.casic.dcms.mvp.BasePresenter;
+import com.casic.dcms.mvp.model.WellDetailModelImpl;
+import com.casic.dcms.mvp.view.IWellDetailView;
+
+public class WellDetailPresenterImpl extends BasePresenter implements IWellDetailPresenter, WellDetailModelImpl.OnGetDetailListener {
+
+ private IWellDetailView view;
+ private WellDetailModelImpl actionModel;
+
+ public WellDetailPresenterImpl(IWellDetailView detailView) {
+ this.view = detailView;
+ actionModel = new WellDetailModelImpl(this);
+ }
+
+ @Override
+ public void onReadyRetrofitRequest(String where) {
+ addSubscription(actionModel.sendRetrofitRequest(where));
+ }
+
+ @Override
+ public void disposeRetrofitRequest() {
+ unSubscription();
+ }
+
+ @Override
+ public void onSuccess(WellDetailBean resultBean) {
+ view.obtainWellDetailResult(resultBean);
+ }
+
+ @Override
+ public void onFailure(Throwable throwable) {
+
+ }
+}
diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
new file mode 100644
index 0000000..2d01903
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvp/view/IWellDetailView.java
@@ -0,0 +1,7 @@
+package com.casic.dcms.mvp.view;
+
+import com.casic.dcms.bean.WellDetailBean;
+
+public interface IWellDetailView {
+ void obtainWellDetailResult(WellDetailBean resultBean);
+}
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 b1b7352..a58662d 100644
--- a/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/ui/PipelineManagerActivity.java
@@ -27,6 +27,7 @@
import com.casic.dcms.mvp.view.ICancelAlarmView;
import com.casic.dcms.utils.Constant;
import com.casic.dcms.utils.OtherUtils;
+import com.casic.dcms.utils.SaveKeyValues;
import com.casic.dcms.utils.StatusBarColorUtil;
import com.casic.dcms.utils.ToastHelper;
import com.casic.dcms.widgets.CancelAlarmDialog;
@@ -105,7 +106,7 @@
showBatchCancelDialog();
break;
case 1:
-
+ startActivity(new Intent(context, WarningOnMapActivity.class));
break;
case 2:
startActivity(new Intent(context, WellListActivity.class));
@@ -123,7 +124,7 @@
@Override
public void initData() {
alarmListPresenter = new AlarmListPresenterImpl(this);
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
weakReferenceHandler = new WeakReferenceHandler(this);
@@ -138,7 +139,7 @@
isRefresh = true;
//刷新之后页码重置
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@@ -146,7 +147,7 @@
public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
isLoadMore = true;
pageIndex++;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
}
});
}
@@ -231,7 +232,7 @@
//取消成功之后自动刷新列表
isRefresh = true;
pageIndex = 1;
- alarmListPresenter.onReadyRetrofitRequest(pageIndex);
+ alarmListPresenter.onReadyRetrofitRequest(Constant.PAGE_LIMIT, pageIndex);
} else {
ToastHelper.showToast("操作失败,请重试", ToastHelper.ERROR);
}
@@ -240,6 +241,7 @@
@Override
public void obtainAlarmResult(AlarmDataBean resultBean) {
if (resultBean.isSuccess()) {
+ SaveKeyValues.putValue("alarmTotal", resultBean.getData().getTotal());
List