diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) 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 ed00019..8a19020 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -54,5 +54,6 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/0"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/"; //部件点图层 + public final static String[] fieldArrayGrid = new String[]{"OBJECTID", "BGID"};// geocode } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) 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 ed00019..8a19020 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -54,5 +54,6 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/0"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/"; //部件点图层 + public final static String[] fieldArrayGrid = new String[]{"OBJECTID", "BGID"};// geocode } diff --git a/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java new file mode 100644 index 0000000..0286bb6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java @@ -0,0 +1,20 @@ +package com.casic.dcms.utils; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class ItemDecorationSpace extends RecyclerView.ItemDecoration { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + if (parent.getChildAdapterPosition(view) % 2 == 0) { + outRect.left = 0; + outRect.right = 5; + } else if (parent.getChildAdapterPosition(view) % 2 == 1) { + outRect.left = 5; + outRect.right = 0; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) 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 ed00019..8a19020 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -54,5 +54,6 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/0"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/"; //部件点图层 + public final static String[] fieldArrayGrid = new String[]{"OBJECTID", "BGID"};// geocode } diff --git a/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java new file mode 100644 index 0000000..0286bb6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java @@ -0,0 +1,20 @@ +package com.casic.dcms.utils; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class ItemDecorationSpace extends RecyclerView.ItemDecoration { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + if (parent.getChildAdapterPosition(view) % 2 == 0) { + outRect.left = 0; + outRect.right = 5; + } else if (parent.getChildAdapterPosition(view) % 2 == 1) { + outRect.left = 5; + outRect.right = 0; + } + } +} 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 31c3b6f..95d4ae0 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 @@ -158,7 +158,7 @@ Observable obtainCaseList(@Header("token") String token, @Query("casetypeCode") String casetypeCode, @Query("casetypeDetailCode") String casetypeDetailCode, - @Query("caseState") String caseState, + @Query("caseStateId") String caseStateId, @Query("createTimeBegin") String createTimeBegin, @Query("createTimeEnd") String createTimeEnd, @Query("eorc") String eorc, diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) 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 ed00019..8a19020 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -54,5 +54,6 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/0"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/"; //部件点图层 + public final static String[] fieldArrayGrid = new String[]{"OBJECTID", "BGID"};// geocode } diff --git a/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java new file mode 100644 index 0000000..0286bb6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java @@ -0,0 +1,20 @@ +package com.casic.dcms.utils; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class ItemDecorationSpace extends RecyclerView.ItemDecoration { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + if (parent.getChildAdapterPosition(view) % 2 == 0) { + outRect.left = 0; + outRect.right = 5; + } else if (parent.getChildAdapterPosition(view) % 2 == 1) { + outRect.left = 5; + outRect.right = 0; + } + } +} 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 31c3b6f..95d4ae0 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 @@ -158,7 +158,7 @@ Observable obtainCaseList(@Header("token") String token, @Query("casetypeCode") String casetypeCode, @Query("casetypeDetailCode") String casetypeDetailCode, - @Query("caseState") String caseState, + @Query("caseStateId") String caseStateId, @Query("createTimeBegin") String createTimeBegin, @Query("createTimeEnd") String createTimeEnd, @Query("eorc") String eorc, 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 7db4182..d24478f 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 @@ -200,13 +200,13 @@ /** * 根据时间查询案卷列表 */ - public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { Retrofit retrofit = createRetrofit(); RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); } /** diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index bac077b..65d930e 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -64,12 +64,12 @@ itemClickListener.onClick(position); } }); -// holder.deleteView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// clickListener.onClick(position); -// } -// }); + holder.deleteView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + deleteClickListener.onClick(position); + } + }); } static class ItemViewHolder extends RecyclerView.ViewHolder { @@ -83,14 +83,14 @@ } } - private OnDeleteItemClickListener clickListener; + private OnDeleteItemClickListener deleteClickListener; public interface OnDeleteItemClickListener { void onClick(int position); } public void setOnDeleteClickListener(OnDeleteItemClickListener deleteItemClickListener) { - this.clickListener = deleteItemClickListener; + this.deleteClickListener = deleteItemClickListener; } private OnItemClickListener itemClickListener; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java index 0a939d5..4ee0e48 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -24,9 +24,9 @@ } @Override - public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { - Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) 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 ed00019..8a19020 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -54,5 +54,6 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/0"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/"; //部件点图层 + public final static String[] fieldArrayGrid = new String[]{"OBJECTID", "BGID"};// geocode } diff --git a/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java new file mode 100644 index 0000000..0286bb6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java @@ -0,0 +1,20 @@ +package com.casic.dcms.utils; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class ItemDecorationSpace extends RecyclerView.ItemDecoration { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + if (parent.getChildAdapterPosition(view) % 2 == 0) { + outRect.left = 0; + outRect.right = 5; + } else if (parent.getChildAdapterPosition(view) % 2 == 1) { + outRect.left = 5; + outRect.right = 0; + } + } +} 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 31c3b6f..95d4ae0 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 @@ -158,7 +158,7 @@ Observable obtainCaseList(@Header("token") String token, @Query("casetypeCode") String casetypeCode, @Query("casetypeDetailCode") String casetypeDetailCode, - @Query("caseState") String caseState, + @Query("caseStateId") String caseStateId, @Query("createTimeBegin") String createTimeBegin, @Query("createTimeEnd") String createTimeEnd, @Query("eorc") String eorc, 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 7db4182..d24478f 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 @@ -200,13 +200,13 @@ /** * 根据时间查询案卷列表 */ - public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { Retrofit retrofit = createRetrofit(); RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); } /** diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml index 1f30218..b522da3 100644 --- a/app/src/main/res/layout/activity_case_list.xml +++ b/app/src/main/res/layout/activity_case_list.xml @@ -11,6 +11,11 @@ android:layout_height="wrap_content" android:fitsSystemWindows="true" /> + + observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java index 7968c67..5bc67d0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -3,7 +3,7 @@ import rx.Subscription; public interface ICaseListModel { - Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java index 6cbb05d..e213ffd 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -16,11 +16,11 @@ } @Override - public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, casetypeDetailCode, caseStateId, + registerTimeBegin, registerTimeEnd, eorc, limit, offset)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java index 67be846..c5a0113 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface ICaseListPresenter { - void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); void disposeRetrofitRequest(); diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index dfe881b..56690d0 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Color; -import android.location.Location; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; @@ -14,14 +13,13 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; import com.esri.arcgisruntime.layers.ArcGISTiledLayer; import com.esri.arcgisruntime.layers.FeatureLayer; 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; @@ -32,6 +30,8 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import java.util.Arrays; + import butterknife.BindView; import butterknife.OnClick; @@ -47,6 +47,7 @@ ImageView expandMapView; @BindView(R.id.minusMapView) ImageView minusMapView; + private FeatureLayer pointLayer, sdeLineLayer, sdeLayer, doorLayer; @Override public int initLayoutView() { @@ -67,18 +68,24 @@ @Override public void initData() { - ArcGISMap map = new ArcGISMap(); - ArcGISTiledLayer arcGISTiledLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISMap map = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); + map.setMinScale(36000); + map.setMaxScale(250); //创建底图、并设置底图图层 Basemap basemap = new Basemap(); - basemap.getBaseLayers().add(arcGISTiledLayer); - //设置地图底图 + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + basemap.getBaseLayers().add(baseLayer); map.setBasemap(basemap); - FeatureLayer featureLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL)); - //设置地图相关属性 - map.getOperationalLayers().add(featureLayer); + //设置地图数据图层,这里可以添加很多别的图层 + pointLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "0")); + sdeLineLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "1")); + sdeLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "2")); + doorLayer = new FeatureLayer(new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "3")); + map.getOperationalLayers().addAll(Arrays.asList(pointLayer, sdeLineLayer, sdeLayer, doorLayer)); + mapView.setAttributionTextVisible(false);//去掉左下角属性标识 + mapView.setViewpointScaleAsync(16000);//数字越大,放大比例越小 mapView.setMap(map); } @@ -91,6 +98,27 @@ Point clickPoint = mapView.screenToLocation(new android.graphics.Point(Math.round(e.getX()), Math.round(e.getY()))); addMarker(clickPoint); +// QueryParameters parameters = new QueryParameters(); +// parameters.setGeometry(clickPoint);// 设置空间几何对象 +// parameters.setSpatialRelationship(QueryParameters.SpatialRelationship.WITHIN); +// parameters.setWhereClause("OBJECTID"); +// FeatureTable featureTable = pointLayer.getFeatureTable();//得到查询属性表 +// ListenableFuture featureQueryResult = featureTable.queryFeaturesAsync(parameters); +// featureQueryResult.addDoneListener(new Runnable() { +// @Override +// public void run() { +// try { +// FeatureQueryResult featureResult = featureQueryResult.get(); +// List fields = featureResult.getFields(); +// for (Field field : fields) { +// Log.d(TAG, "field: " + new Gson().toJson(field)); +// } +// } catch (ExecutionException | InterruptedException ex) { +// ex.printStackTrace(); +// } +// } +// }); + new QMUIDialog.MessageDialogBuilder(context) .setTitle("提示") .setMessage("该时间所在地点网格为[" + clickPoint.getX() + "," + clickPoint.getY() + "]确认提交?") @@ -113,6 +141,25 @@ }); } +// public static FeatureSet executeQueryByGeometry(String queryUrl, Geometry geometry, String whereCause, +// Boolean returnGeometry, String[] outFields, SpatialRelationship spatialRelationship, +// SpatialReference outSpatialReference) throws Exception { +// FeatureSet result; +// Query query = new Query(); +// query.setGeometry(geometry); +// query.setReturnGeometry(returnGeometry); +// query.setWhere(whereCause); +// query.setOutSpatialReference(outSpatialReference); +// query.setSpatialRelationship(spatialRelationship); +// if (outFields != null && outFields.length > 0) { +// query.setOutFields(outFields); +// } +// QueryTask queryTask = new QueryTask(queryUrl); +// result = queryTask.execute(query); +// return result; +// } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ @@ -140,14 +187,7 @@ mapView.setViewpointScaleAsync(mapView.getMapScale() * 2); break; case R.id.removeToLocalView: - LocationHelper.obtainCurrentLocation(this, new ILocationListener() { - @Override - public void onLocationGet(Location location) { - if (location != null) { - - } - } - }); + mapView.setViewpointCenterAsync(new Point(116.59788667263976, 28.24519968024058)); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java index 071a8c7..c11de8d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseListResultBean; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.lang.reflect.Type; @@ -23,8 +24,11 @@ public class CaseListResultActivity extends BaseActivity { + private static final String TAG = "CaseListResultActivity"; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; + @BindView(R.id.emptyView) + QMUIEmptyView emptyView; @BindView(R.id.caseRecyclerView) RecyclerView caseRecyclerView; @@ -53,18 +57,23 @@ }.getType(); CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); List dataRows = resultBean.getData().getRows(); - CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); - caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); - caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); - intent.putExtra("id", dataRows.get(position).getId()); - startActivity(intent); - } - }); + if (dataRows.size() == 0) { + emptyView.show("抱歉,没有查到符合您规定条件的案卷", null); + } else { + emptyView.hide(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("id", dataRows.get(position).getId()); + startActivity(intent); + } + }); + } } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java index da9b919..a4740ac 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -25,7 +24,6 @@ import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; -import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; @@ -76,6 +74,7 @@ private String typeDetailCode; private String typeCode; private Gson gson; + private String statusId; @Override public int initLayoutView() { @@ -190,6 +189,7 @@ break; case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择处理时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -204,6 +204,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择截止时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -217,7 +218,9 @@ }).build().show(getSupportFragmentManager(), "year_month_day"); break; case R.id.searchButton: - startSearchCaseList(); + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, statusId, + startTimeView.getText().toString(), endTimeView.getText().toString(), + eorc, 20, 0); break; case R.id.resetButton: new QMUIDialog.MessageDialogBuilder(context) @@ -244,45 +247,6 @@ } } - /** - * 参数校验 - */ - private void startSearchCaseList() { - if (TextUtils.isEmpty(typeCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - if (TextUtils.isEmpty(typeDetailCode)) { - if (TextUtils.isEmpty(typeDetailCode)) { - ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); - return; - } - } - String caseStatus = caseStatusView.getText().toString(); - if (TextUtils.isEmpty(caseStatus)) { - ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); - return; - } - String startTime = startTimeView.getText().toString(); - if (TextUtils.isEmpty(startTime)) { - ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); - return; - } - String endTime = endTimeView.getText().toString(); - if (TextUtils.isEmpty(endTime)) { - ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); - return; - } - if (TextUtils.isEmpty(eorc)) { - ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); - return; - } - caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, - 20, 0); - } - @Override public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { if (largeClassBean.isSuccess()) { @@ -329,6 +293,7 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); + statusId = beans.get(position).getId(); caseStatusView.setText(tag); caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 4826307..755eab5 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -35,6 +35,7 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; import com.casic.dcms.utils.ToastHelper; @@ -139,6 +140,7 @@ uploadImagePresenter = new UploadImagePresenterImpl(this); imageAdapter = new ImageRecycleViewAdapter(this); selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); } @@ -282,10 +284,6 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - if (selectList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } for (LocalMedia media : selectList) { String mediaCompressPath = media.getCompressPath(); uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); @@ -421,14 +419,17 @@ showBigImage(mediaList.get(position)); } }); -// //删除按钮点击事件 -// imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { -// @Override -// public void onClick(int position) { -// selectList.remove(position); -// imageAdapter.setMediaList(selectList); -// } -// }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + mediaList.remove(position); + imageAdapter.setMediaList(mediaList); + if (mediaList.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); } } @@ -447,8 +448,8 @@ if (TextUtils.isEmpty(description)) { ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); } - if (mediaList.size() == 0) { - ToastHelper.showToast("没有案卷图片,请先上传图片!", ToastHelper.WARING); + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index a513a5b..8d37132 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -114,6 +114,7 @@ switch (v.getId()) { case R.id.selectStartDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择起始时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) @@ -128,6 +129,7 @@ break; case R.id.selectEndDateView: new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") .setWheelItemTextSize(16) .setCyclic(false) .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) 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 ed00019..8a19020 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -54,5 +54,6 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/0"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer/"; //部件点图层 + public final static String[] fieldArrayGrid = new String[]{"OBJECTID", "BGID"};// geocode } diff --git a/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java new file mode 100644 index 0000000..0286bb6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ItemDecorationSpace.java @@ -0,0 +1,20 @@ +package com.casic.dcms.utils; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class ItemDecorationSpace extends RecyclerView.ItemDecoration { + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + if (parent.getChildAdapterPosition(view) % 2 == 0) { + outRect.left = 0; + outRect.right = 5; + } else if (parent.getChildAdapterPosition(view) % 2 == 1) { + outRect.left = 5; + outRect.right = 0; + } + } +} 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 31c3b6f..95d4ae0 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 @@ -158,7 +158,7 @@ Observable obtainCaseList(@Header("token") String token, @Query("casetypeCode") String casetypeCode, @Query("casetypeDetailCode") String casetypeDetailCode, - @Query("caseState") String caseState, + @Query("caseStateId") String caseStateId, @Query("createTimeBegin") String createTimeBegin, @Query("createTimeEnd") String createTimeEnd, @Query("eorc") String eorc, 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 7db4182..d24478f 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 @@ -200,13 +200,13 @@ /** * 根据时间查询案卷列表 */ - public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseStateId, String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { Retrofit retrofit = createRetrofit(); RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, - casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + casetypeDetailCode, caseStateId, registerTimeBegin, registerTimeEnd, eorc, limit, offset); } /** diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml index 1f30218..b522da3 100644 --- a/app/src/main/res/layout/activity_case_list.xml +++ b/app/src/main/res/layout/activity_case_list.xml @@ -11,6 +11,11 @@ android:layout_height="wrap_content" android:fitsSystemWindows="true" /> + + + android:layout_height="wrap_content" + android:background="@color/lightGray"> + android:background="@drawable/ic_delete_black" /> \ No newline at end of file