diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 032457a..3ef79ef 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -37,7 +37,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - android:layout_centerVertical="true" android:layout_marginEnd="20dp" android:text="请选择" android:textColor="@color/darkGray" @@ -50,7 +49,9 @@ - + - + @@ -225,7 +231,8 @@ android:layout_height="wrap_content" android:layout_margin="3dp" android:layout_toStartOf="@id/voiceView" - android:background="@null" /> + android:background="@null" + android:maxLength="50" /> + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 032457a..3ef79ef 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -37,7 +37,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - android:layout_centerVertical="true" android:layout_marginEnd="20dp" android:text="请选择" android:textColor="@color/darkGray" @@ -50,7 +49,9 @@ - + - + @@ -225,7 +231,8 @@ android:layout_height="wrap_content" android:layout_margin="3dp" android:layout_toStartOf="@id/voiceView" - android:background="@null" /> + android:background="@null" + android:maxLength="50" /> + + + + + + + + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 032457a..3ef79ef 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -37,7 +37,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - android:layout_centerVertical="true" android:layout_marginEnd="20dp" android:text="请选择" android:textColor="@color/darkGray" @@ -50,7 +49,9 @@ - + - + @@ -225,7 +231,8 @@ android:layout_height="wrap_content" android:layout_margin="3dp" android:layout_toStartOf="@id/voiceView" - android:background="@null" /> + android:background="@null" + android:maxLength="50" /> + + + + + + + + + diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 225dc18..fdd698e 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -1,6 +1,5 @@ @@ -11,7 +10,7 @@ android:layout_height="wrap_content" android:fitsSystemWindows="true" /> - @@ -19,10 +18,6 @@ - + android:layout_height="match_parent" /> + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 032457a..3ef79ef 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -37,7 +37,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - android:layout_centerVertical="true" android:layout_marginEnd="20dp" android:text="请选择" android:textColor="@color/darkGray" @@ -50,7 +49,9 @@ - + - + @@ -225,7 +231,8 @@ android:layout_height="wrap_content" android:layout_margin="3dp" android:layout_toStartOf="@id/voiceView" - android:background="@null" /> + android:background="@null" + android:maxLength="50" /> + + + + + + + + + diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 225dc18..fdd698e 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -1,6 +1,5 @@ @@ -11,7 +10,7 @@ android:layout_height="wrap_content" android:fitsSystemWindows="true" /> - @@ -19,10 +18,6 @@ - + android:layout_height="match_parent" /> + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 031ee27..e4f6d1b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ 移动城管 - pk.eyJ1IjoiMTgzMTA1ODE5MTYiLCJhIjoiY2tuN2hxN3p0MDhjeDJxcW5ja3YyMXNjaiJ9.CsMzaHNCpGTrKkuitQiZlg + pk.eyJ1IjoiMTgzMTA1ODE5MTYiLCJhIjoiY2tuN2hna2hhMG9hYzJ1bTFzamY0dXhsaCJ9.yWjMxHEHvXFe8c0AWT1bTQ + AAPK068bca9a1246485881b11f568444dc8ajG37wO52bDOv5NZgrAiOZstaEdqvG0bjKEZJX9gXgvR5Jq56g56eyswsu5ziFquD diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 032457a..3ef79ef 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -37,7 +37,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - android:layout_centerVertical="true" android:layout_marginEnd="20dp" android:text="请选择" android:textColor="@color/darkGray" @@ -50,7 +49,9 @@ - + - + @@ -225,7 +231,8 @@ android:layout_height="wrap_content" android:layout_margin="3dp" android:layout_toStartOf="@id/voiceView" - android:background="@null" /> + android:background="@null" + android:maxLength="50" /> + + + + + + + + + diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 225dc18..fdd698e 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -1,6 +1,5 @@ @@ -11,7 +10,7 @@ android:layout_height="wrap_content" android:fitsSystemWindows="true" /> - @@ -19,10 +18,6 @@ - + android:layout_height="match_parent" /> + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 031ee27..e4f6d1b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ 移动城管 - pk.eyJ1IjoiMTgzMTA1ODE5MTYiLCJhIjoiY2tuN2hxN3p0MDhjeDJxcW5ja3YyMXNjaiJ9.CsMzaHNCpGTrKkuitQiZlg + pk.eyJ1IjoiMTgzMTA1ODE5MTYiLCJhIjoiY2tuN2hna2hhMG9hYzJ1bTFzamY0dXhsaCJ9.yWjMxHEHvXFe8c0AWT1bTQ + AAPK068bca9a1246485881b11f568444dc8ajG37wO52bDOv5NZgrAiOZstaEdqvG0bjKEZJX9gXgvR5Jq56g56eyswsu5ziFquD diff --git a/build.gradle b/build.gradle index 96af85d..436d01f 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,10 @@ maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } google() jcenter() - maven { url 'https://jitpack.io' } + maven { + //url 'https://esri.bintray.com/arcgis'(网站拒绝请求) + url 'https://esri.jfrog.io/artifactory/arcgis'//(新网站) + } maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' authentication { @@ -36,6 +39,7 @@ password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: "" } } + maven { url 'https://jitpack.io' } mavenCentral() } } diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ca3f486..204d170 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,6 +12,9 @@ versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + //华为手机需要添加如下配置 + ndk { abiFilters "armeabi", "armeabi-v7a" } } buildTypes { @@ -64,4 +67,8 @@ //全球可用地图MapBox implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1' implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0' + implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v9:0.12.0' + //ArcGis + implementation 'com.esri.arcgisruntime:arcgis-android:100.3.0' + implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7651c6f..8a5cf12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,11 @@ + + + - + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java index 5ac7a3b..6fe9e88 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageGridViewAdapter.java @@ -16,7 +16,7 @@ /** * @Author: Pengxh * @Time: 2021/4/7 17:17 - * @Emain: 290677893@qq.com + * @Email: 290677893@qq.com **/ public class ImageGridViewAdapter extends BaseAdapter { diff --git a/app/src/main/java/com/casic/dcms/base/BaseApplication.java b/app/src/main/java/com/casic/dcms/base/BaseApplication.java index 6150788..0972c8a 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseApplication.java +++ b/app/src/main/java/com/casic/dcms/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.casic.dcms.R; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.mapbox.mapboxsdk.Mapbox; import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; @@ -13,7 +14,10 @@ super.onCreate(); QMUISwipeBackActivityManager.init(this); SaveKeyValues.initSharedPreferences(this); + ToastHelper.initToastHelper(this); //MapBox地图注册 Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); + //ArcGIS注册 +// ArcGISRuntimeEnvironment.setLicense(); } } diff --git a/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java new file mode 100644 index 0000000..5eac40d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseLargeClassBean.java @@ -0,0 +1,116 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseLargeClassBean { + + /** + * code : 200 + * data : [{"bjNum":0,"eorc":"2","id":"7","typeCode":"05","typeLevel":7,"typeName":"其他部件"},{"bjNum":0,"eorc":"2","id":"8","typeCode":"02","typeLevel":8,"typeName":"交通设施"},{"bjNum":0,"eorc":"2","id":"9","typeCode":"09","typeLevel":9,"typeName":"公共设施"},{"bjNum":0,"eorc":"2","id":"10","typeCode":"03","typeLevel":10,"typeName":"市容环境设施"},{"bjNum":0,"eorc":"2","id":"11","typeCode":"04","typeLevel":11,"typeName":"园林绿化设施"},{"bjNum":0,"eorc":"2","id":"12","typeCode":"12","typeLevel":12,"typeName":"test"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * bjNum : 0 + * eorc : 2 + * id : 7 + * typeCode : 05 + * typeLevel : 7 + * typeName : 其他部件 + */ + + private int bjNum; + private String eorc; + private String id; + private String typeCode; + private int typeLevel; + private String typeName; + + public int getBjNum() { + return bjNum; + } + + public void setBjNum(int bjNum) { + this.bjNum = bjNum; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public int getTypeLevel() { + return typeLevel; + } + + public void setTypeLevel(int typeLevel) { + this.typeLevel = typeLevel; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java new file mode 100644 index 0000000..889f317 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseSmallClassBean.java @@ -0,0 +1,161 @@ +package com.casic.dcms.bean; + +import java.util.List; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 11:03 + * @Email: 290677893@qq.com + **/ +public class CaseSmallClassBean { + + /** + * code : 200 + * data : [{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"1","opmap":0,"typeDetailCode":"01","typeDetailName":"违规高空悬吊作业","typeId":"1"},{"deptId":"1","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"2","opmap":0,"typeDetailCode":"03","typeDetailName":"畜力车进城","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"3","opmap":0,"typeDetailCode":"05","typeDetailName":"\t无证餐饮","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"4","opmap":0,"typeDetailCode":"04","typeDetailName":"门前(五包)脏乱","typeId":"1"},{"deptId":"","deptName":"","eorc":"1","gdHas":0,"gdNum":5,"id":"5","opmap":0,"typeDetailCode":"02","typeDetailName":"临街屠宰","typeId":"1"}] + * message : 请求成功 + * success : true + */ + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * deptId : + * deptName : + * eorc : 1 + * gdHas : 0 + * gdNum : 5 + * id : 1 + * opmap : 0 + * typeDetailCode : 01 + * typeDetailName : 违规高空悬吊作业 + * typeId : 1 + */ + + private String deptId; + private String deptName; + private String eorc; + private int gdHas; + private int gdNum; + private String id; + private int opmap; + private String typeDetailCode; + private String typeDetailName; + private String typeId; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public int getGdHas() { + return gdHas; + } + + public void setGdHas(int gdHas) { + this.gdHas = gdHas; + } + + public int getGdNum() { + return gdNum; + } + + public void setGdNum(int gdNum) { + this.gdNum = gdNum; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getOpmap() { + return opmap; + } + + public void setOpmap(int opmap) { + this.opmap = opmap; + } + + public String getTypeDetailCode() { + return typeDetailCode; + } + + public void setTypeDetailCode(String typeDetailCode) { + this.typeDetailCode = typeDetailCode; + } + + public String getTypeDetailName() { + return typeDetailName; + } + + public void setTypeDetailName(String typeDetailName) { + this.typeDetailName = typeDetailName; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java b/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java deleted file mode 100644 index ee4f43b..0000000 --- a/app/src/main/java/com/casic/dcms/bean/CaseTypeBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.casic.dcms.bean; - -import java.util.List; - -public class CaseTypeBean { - - /** - * code : 200 - * data : [{"name":"事件","value":"1"},{"name":"部件","value":"2"}] - * message : 请求成功 - * success : true - */ - - private int code; - private String message; - private boolean success; - private List data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public boolean isSuccess() { - return success; - } - - public void setSuccess(boolean success) { - this.success = success; - } - - public List getData() { - return data; - } - - public void setData(List data) { - this.data = data; - } - - public static class DataBean { - /** - * name : 事件 - * value : 1 - */ - - private String name; - private String value; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java new file mode 100644 index 0000000..d307cbc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitInfoBean.java @@ -0,0 +1,191 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:58 + * @Email: 290677893@qq.com + **/ +public class SubmitInfoBean { + /** + * @param isNeedVerify 是否需要核实,0-不需要,1-需要 + * @param isNeedRevisit 是否需要回访 ,0-不需要,1-需要 + * @param longitude 经度 + * @param latitude 纬度 + * @param source 案卷来源(字典值),案卷上报or快速上报,1-案卷上报,2-快速上报 + * @param caseLevel 案卷等级(字典值) + * @param eorc 案卷类别(字典值),事件or部件,1-事件,2-部件 + * @param casetypeCode 案卷大类编码 + * @param casetypeDetailCode 案卷小类编码 + * @param areaCode 所属区县ID,对应AREA表的主键id + * @param streetCode 所属街道ID,对应AREA表的主键id + * @param communityCode 所属社区ID(预留字段,暂不维护) + * @param gridId 万米网格ID,后期地图接入后维护 + * @param description 案件描述 + * @param fieldintro 位置描述 + * @param fileIdVerify 核实照片id,即照片路径 + * @param bzhours 限制完成总时限(小时) + * @param bzminis 限制完成总时限(分) + */ + private String isNeedVerify; + private String isNeedRevisit; + private String longitude; + private String latitude; + private String source; + private String caseLevel; + private String eorc; + private String casetypeCode; + private String casetypeDetailCode; + private String areaCode; + private String streetCode; + private String communityCode; + private String gridId; + private String description; + private String fieldintro; + private String fileIdVerify; + private String bzhours; + private String bzminis; + + public String getIsNeedVerify() { + return isNeedVerify; + } + + public void setIsNeedVerify(String isNeedVerify) { + this.isNeedVerify = isNeedVerify; + } + + public String getIsNeedRevisit() { + return isNeedRevisit; + } + + public void setIsNeedRevisit(String isNeedRevisit) { + this.isNeedRevisit = isNeedRevisit; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getCaseLevel() { + return caseLevel; + } + + public void setCaseLevel(String caseLevel) { + this.caseLevel = caseLevel; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getStreetCode() { + return streetCode; + } + + public void setStreetCode(String streetCode) { + this.streetCode = streetCode; + } + + public String getCommunityCode() { + return communityCode; + } + + public void setCommunityCode(String communityCode) { + this.communityCode = communityCode; + } + + public String getGridId() { + return gridId; + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + + public String getBzhours() { + return bzhours; + } + + public void setBzhours(String bzhours) { + this.bzhours = bzhours; + } + + public String getBzminis() { + return bzminis; + } + + public void setBzminis(String bzminis) { + this.bzminis = bzminis; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java new file mode 100644 index 0000000..d55a129 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/SubmitResultBean.java @@ -0,0 +1,63 @@ +package com.casic.dcms.bean; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:15 + * @Email: 290677893@qq.com + **/ +public class SubmitResultBean { + + /** + * code : 500 + * data : + * exceptionClazz : + * message : 服务器异常 + * success : false + */ + + private int code; + private String data; + private String exceptionClazz; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getExceptionClazz() { + return exceptionClazz; + } + + public void setExceptionClazz(String exceptionClazz) { + this.exceptionClazz = exceptionClazz; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java new file mode 100644 index 0000000..9fa7733 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseLargeClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseLargeClassModelImpl implements ICaseLargeClassModel { + + private OnGetLargeClassListener listener; + + public CaseLargeClassModelImpl(OnGetLargeClassListener onGetLargeClassListener) { + this.listener = onGetLargeClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc) { + Observable observable = RetrofitServiceManager.getCaseLargeClass(HttpConfig.BASE_IP, eorc); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseLargeClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetLargeClassListener { + void onSuccess(CaseLargeClassBean largeClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java new file mode 100644 index 0000000..928bf59 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSmallClassModelImpl.java @@ -0,0 +1,51 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseSmallClassModelImpl implements ICaseSmallClassModel { + + private OnGetSmallClassListener listener; + + public CaseSmallClassModelImpl(OnGetSmallClassListener onGetSmallClassListener) { + this.listener = onGetSmallClassListener; + } + + @Override + public Subscription sendRetrofitRequest(String eorc, String typeId) { + Observable observable = RetrofitServiceManager.getCaseSmallClass(HttpConfig.BASE_IP, eorc, typeId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseSmallClassBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } + + public interface OnGetSmallClassListener { + void onSuccess(CaseSmallClassBean smallClassBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java new file mode 100644 index 0000000..d2958f4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseSubmitModelImpl.java @@ -0,0 +1,60 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitModelImpl implements ICaseSubmitModel { + + private OnSubmitListener listener; + + public CaseSubmitModelImpl(OnSubmitListener submitListener) { + this.listener = submitListener; + } + + /** + * 数据回调接口 + */ + public interface OnSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(SubmitInfoBean infoBean) { + Observable observable = RetrofitServiceManager.submitCase(HttpConfig.BASE_IP, infoBean); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java deleted file mode 100644 index a827632..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseTypeModelImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.utils.HttpConfig; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class CaseTypeModelImpl implements ICaseTypeModel { - - private OnGetTypeListener onGetTypeListener; - - public CaseTypeModelImpl(OnGetTypeListener listener) { - this.onGetTypeListener = listener; - } - - @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getCaseType(HttpConfig.BASE_IP, token); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (onGetTypeListener != null) { - onGetTypeListener.onFailure(e); - } - } - - @Override - public void onNext(CaseTypeBean caseTypeBean) { - if (caseTypeBean != null) { - onGetTypeListener.onSuccess(caseTypeBean); - } - } - }); - } - - public interface OnGetTypeListener { - void onSuccess(CaseTypeBean typeBean); - - void onFailure(Throwable throwable); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java new file mode 100644 index 0000000..5432b1f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseLargeClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseLargeClassModel { + Subscription sendRetrofitRequest(String eorc); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java new file mode 100644 index 0000000..0249926 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSmallClassModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseSmallClassModel { + Subscription sendRetrofitRequest(String eorc, String typeId); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java new file mode 100644 index 0000000..c8d7d07 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseSubmitModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitInfoBean; + +import rx.Subscription; + +public interface ICaseSubmitModel { + Subscription sendRetrofitRequest(SubmitInfoBean infoBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java deleted file mode 100644 index 0bd7512..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseTypeModel.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.model; - -import rx.Subscription; - -public interface ICaseTypeModel { - Subscription sendRetrofitRequest(String token); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java index 74b79b7..7cf49c0 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUserDataModel.java @@ -3,5 +3,5 @@ import rx.Subscription; public interface IUserDataModel { - Subscription sendRetrofitRequest(String token); + Subscription sendRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java index d71558d..a62efb8 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/UserDataModelImpl.java @@ -29,8 +29,8 @@ } @Override - public Subscription sendRetrofitRequest(String token) { - Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP, token); + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getUserData(HttpConfig.BASE_IP); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java new file mode 100644 index 0000000..9aa810a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseLargeClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseLargeClassModelImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; + +public class CaseLargeClassPresenterImpl extends BasePresenter implements ICaseLargeClassPresenter, CaseLargeClassModelImpl.OnGetLargeClassListener { + + private ICaseLargeClassView view; + private CaseLargeClassModelImpl actionModel; + + public CaseLargeClassPresenterImpl(ICaseLargeClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseLargeClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc) { + addSubscription(actionModel.sendRetrofitRequest(eorc)); + } + + @Override + public void onSuccess(CaseLargeClassBean resultBean) { + view.obtainLargeClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java new file mode 100644 index 0000000..4889877 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSmallClassModelImpl; +import com.casic.dcms.mvp.view.ICaseSmallClassView; + +public class CaseSmallClassPresenterImpl extends BasePresenter implements ICaseSmallClassPresenter, CaseSmallClassModelImpl.OnGetSmallClassListener { + + private ICaseSmallClassView view; + private CaseSmallClassModelImpl actionModel; + + public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSmallClassModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String eorc, String typeId) { + addSubscription(actionModel.sendRetrofitRequest(eorc, typeId)); + } + + @Override + public void onSuccess(CaseSmallClassBean resultBean) { + view.obtainSmallClassData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java new file mode 100644 index 0000000..1641026 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSubmitPresenterImpl.java @@ -0,0 +1,45 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class CaseSubmitPresenterImpl extends BasePresenter implements ICaseSubmitPresenter, CaseSubmitModelImpl.OnSubmitListener { + + private ICaseSubmitCaseView view; + private CaseSubmitModelImpl actionModel; + + public CaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new CaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(SubmitInfoBean infoBean) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(infoBean)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java deleted file mode 100644 index 55e801e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseTypePresenterImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.CaseTypeModelImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; - -public class CaseTypePresenterImpl extends BasePresenter implements ICaseTypePresenter, CaseTypeModelImpl.OnGetTypeListener { - - private ICaseTypeView view; - private CaseTypeModelImpl actionModel; - - public CaseTypePresenterImpl(ICaseTypeView caseTypeView) { - this.view = caseTypeView; - actionModel = new CaseTypeModelImpl(this); - } - - @Override - public void onReadyRetrofitRequest(String token) { - addSubscription(actionModel.sendRetrofitRequest(token)); - } - - @Override - public void onSuccess(CaseTypeBean resultBean) { - view.obtainTypeData(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java new file mode 100644 index 0000000..eb08b8f --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseLargeClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseLargeClassPresenter { + void onReadyRetrofitRequest(String eorc); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java new file mode 100644 index 0000000..94afb0e --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSmallClassPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseSmallClassPresenter { + void onReadyRetrofitRequest(String eorc, String typeId); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java new file mode 100644 index 0000000..af804fa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseSubmitPresenter.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitInfoBean; + +public interface ICaseSubmitPresenter { + void onReadyRetrofitRequest(SubmitInfoBean infoBean); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java deleted file mode 100644 index 8259db3..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseTypePresenter.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -public interface ICaseTypePresenter { - void onReadyRetrofitRequest(String token); - - void disposeRetrofitRequest(); -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java index 0bbae05..10b350c 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUserDataPresenter.java @@ -1,7 +1,7 @@ package com.casic.dcms.mvp.presenter; public interface IUserDataPresenter { - void onReadyRetrofitRequest(String token); + void onReadyRetrofitRequest(); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java index f344c7d..2119b70 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UserDataPresenterImpl.java @@ -16,9 +16,9 @@ } @Override - public void onReadyRetrofitRequest(String token) { + public void onReadyRetrofitRequest() { view.showProgress(); - addSubscription(actionModel.sendRetrofitRequest(token)); + addSubscription(actionModel.sendRetrofitRequest()); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java new file mode 100644 index 0000000..047bfda --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseLargeClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseLargeClassBean; + +public interface ICaseLargeClassView { + void obtainLargeClassData(CaseLargeClassBean largeClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java new file mode 100644 index 0000000..61edeaf --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSmallClassView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseSmallClassBean; + +public interface ICaseSmallClassView { + void obtainSmallClassData(CaseSmallClassBean smallClassBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java new file mode 100644 index 0000000..0ea25c0 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseSubmitCaseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.SubmitResultBean; + +public interface ICaseSubmitCaseView { + void showProgress(); + + void hideProgress(); + + void obtainSubmitResult(SubmitResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java deleted file mode 100644 index 3dd0c01..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/view/ICaseTypeView.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.casic.dcms.mvp.view; - -import com.casic.dcms.bean.CaseTypeBean; - -public interface ICaseTypeView { - void obtainTypeData(CaseTypeBean typeBean); -} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java new file mode 100644 index 0000000..5035596 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISActivity.java @@ -0,0 +1,104 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.esri.arcgisruntime.mapping.view.MapView; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import butterknife.BindView; + +/** + * @Author: Pengxh + * @Time: 2021/4/9 8:26 + * @Email: 290677893@qq.com + **/ +public class ArcGISActivity extends BaseActivity { + + private Context context = this; + @BindView(R.id.gisTopLayout) + QMUITopBarLayout gisTopLayout; + @BindView(R.id.gisMapView) + MapView gisMapView; + + @Override + public int initLayoutView() { + return R.layout.activity_gis; + } + + @Override + protected void setupTopBarLayout() { + gisTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + gisTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + gisTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + gisTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 +// map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 +// map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + + } + + @Override + public void initEvent() { + + } + + @Override + protected void onPause() { + super.onPause(); + gisMapView.pause(); + } + + @Override + protected void onResume() { + super.onResume(); + gisMapView.resume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + gisMapView.dispose(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 65e2dd9..9979749 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -23,13 +24,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageGridViewAdapter; import com.casic.dcms.base.BaseActivity; -import com.casic.dcms.bean.CaseTypeBean; -import com.casic.dcms.mvp.presenter.CaseTypePresenterImpl; -import com.casic.dcms.mvp.view.ICaseTypeView; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSubmitPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.utils.ColorHelper; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.TokenHelper; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.callback.ILocationListener; import com.google.gson.Gson; import com.luck.picture.lib.PictureSelector; @@ -39,11 +48,13 @@ import com.qmuiteam.qmui.widget.QMUITopBarLayout; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -51,15 +62,20 @@ import butterknife.OnClick; public class CaseUploadActivity extends BaseActivity implements View.OnClickListener, View.OnTouchListener, - ICaseTypeView { + ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView { private static final String TAG = "CaseUploadActivity"; + private Context context = this; @BindView(R.id.caseTopLayout) QMUITopBarLayout caseTopLayout; @BindView(R.id.caseClassView) TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; @BindView(R.id.communityNameView) EditText communityNameView; @@ -69,6 +85,8 @@ EditText latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; @BindView(R.id.voiceView) @@ -83,7 +101,14 @@ private MediaRecorder mediaRecorder; private File outputFile; private List mediaList = new ArrayList<>();//拍照或者视频数据集 - private CaseTypePresenterImpl caseTypePresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseSubmitPresenterImpl caseSubmitPresenter; + private List largeClassBeans; + private List smallClassBeans; + private QMUITipDialog submitDialog; + private SubmitInfoBean infoBean; + private HashMap locationMap; @Override public int initLayoutView() { @@ -104,6 +129,23 @@ @Override public void initData() { + //进入页面即创建提交表单的实体 + infoBean = new SubmitInfoBean(); + infoBean.setIsNeedRevisit("0"); + infoBean.setIsNeedVerify("0"); + infoBean.setCaseLevel("1"); + infoBean.setSource("1");//案卷上报 + infoBean.setAreaCode("崇仁县"); + infoBean.setStreetCode("巴山镇"); + //以下暂未确定,后期需要换成从地图获取 + infoBean.setCommunityCode("361024"); + infoBean.setGridId("361024100"); + //以下非必选参数 + infoBean.setFileIdVerify(""); + infoBean.setBzhours(""); + infoBean.setBzminis(""); + //定位 + locationMap = new HashMap<>(); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -111,7 +153,15 @@ } }); initMediaRecorder(); - caseTypePresenter = new CaseTypePresenterImpl(this); + largeClassBeans = new ArrayList<>(); + smallClassBeans = new ArrayList<>(); + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseSubmitPresenter = new CaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("案卷提交中,请稍后") + .create(); } private void updateLocation(Location location) { @@ -134,6 +184,13 @@ .append(address.getSubAdminArea()) .append(address.getThoroughfare()) .append(address.getSubThoroughfare()); + +// infoBean.setAreaCode(address.getSubLocality()); +// infoBean.setStreetCode(address.getSubAdminArea()); + + //保存经纬度,供地图页面定位 + locationMap.put("longitude", longitude); + locationMap.put("latitude", latitude); } catch (IOException e) { buffer.append("解析详细地址失败"); e.printStackTrace(); @@ -163,7 +220,6 @@ try { mediaRecorder.prepare(); } catch (IllegalStateException | IOException e) { - Log.d(TAG, "initMediaRecorder: " + e); releaseMediaRecorder(); } } @@ -171,27 +227,88 @@ @SuppressLint("ClickableViewAccessibility") @Override public void initEvent() { - //地图图标点击事件 - locationMapView.setOnClickListener(this); - //录音按钮点击事件 voiceView.setOnTouchListener(this); - //添加图片或者视频按钮点击事件 - addImageView.setOnClickListener(this); - //提交按钮点击事件 submitButton.setChangeAlphaWhenPress(true); - submitButton.setOnClickListener(this); } - @OnClick({R.id.caseClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { case R.id.caseClassLayout: - //请求服务器得到‘案卷类型’ - caseTypePresenter.onReadyRetrofitRequest(TokenHelper.getToken()); + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + infoBean.setEorc(eorc); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(largeClassBeans.get(position).getTypeCode()); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + infoBean.setCasetypeDetailCode(smallClassBeans.get(position).getTypeDetailCode()); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } break; case R.id.locationMapView: - startActivity(new Intent(this, MapActivity.class)); + Intent intent = new Intent(this, MapBoxActivity.class); + intent.putExtra("locationMap", locationMap); + startActivity(intent); break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) @@ -223,7 +340,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase();//案卷提交 break; default: break; @@ -261,7 +378,7 @@ switch (requestCode) { case PictureConfig.CHOOSE_REQUEST: List selectList = PictureSelector.obtainMultipleResult(data); - Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); +// Log.d(TAG, "onActivityResult: " + new Gson().toJson(selectList)); if (selectList != null && selectList.size() > 0) { addImageView.setVisibility(View.GONE); selectedResultView.setVisibility(View.VISIBLE); @@ -283,7 +400,6 @@ selectList.remove(position); imageGridViewAdapter.notifyDataSetChanged(); if (selectList.size() == 0) { - addImageView.setVisibility(View.VISIBLE); selectedResultView.setVisibility(View.GONE); } } @@ -377,14 +493,12 @@ * 录音,保存文件 */ private void startRecordedVoice() { - Log.d(TAG, "startRecordedVoice: 开始录音"); if (mediaRecorder != null) { mediaRecorder.start(); } } private void releaseMediaRecorder() { - Log.d(TAG, "releaseMediaRecorder: 录音已停止"); if (mediaRecorder != null) { mediaRecorder.reset(); mediaRecorder.release(); @@ -399,20 +513,78 @@ } @Override - public void obtainTypeData(CaseTypeBean typeBean) { - Log.d(TAG, "obtainTypeData: " + new Gson().toJson(typeBean)); - if (typeBean.isSuccess()) { - List dataBeans = typeBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - for (CaseTypeBean.DataBean dataBean : dataBeans) { - sheetBuilder.addItem(dataBean.getName()); + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { +// Log.d(TAG, "obtainLargeClassData: " + new Gson().toJson(largeClassBean)); + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText("请选择"); } - sheetBuilder.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - } - }).build().show(); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); } } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { +// Log.d(TAG, "obtainSmallClassData: " + new Gson().toJson(smallClassBean)); + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText("请选择"); + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + /** + * 案卷提交 + */ + private void submitCase() { + infoBean.setLongitude(longitudeView.getText().toString()); + infoBean.setLatitude(latitudeView.getText().toString()); + + String fieldIntro = caseLocationView.getText().toString(); + if (!TextUtils.isEmpty(fieldIntro)) { + infoBean.setFieldintro(fieldIntro); + } else { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + } + String description = caseDetailEditView.getText().toString(); + if (!TextUtils.isEmpty(description)) { + infoBean.setFieldintro(description); + } else { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + Log.d(TAG, "submitCase: " + new Gson().toJson(infoBean)); + caseSubmitPresenter.onReadyRetrofitRequest(infoBean); + } + + @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + Log.d(TAG, "obtainSubmitResult: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷提交成功", ToastHelper.SUCCESS); + } else { + ToastHelper.showToast("案卷提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java index 8c17ade..06f4028 100644 --- a/app/src/main/java/com/casic/dcms/ui/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/LoginActivity.java @@ -3,12 +3,10 @@ import android.content.Intent; import android.text.TextUtils; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; -import android.widget.Toast; import com.casic.dcms.R; import com.casic.dcms.base.DoubleClickExitActivity; @@ -20,6 +18,7 @@ import com.casic.dcms.mvp.view.ILoginView; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.ToastHelper; import com.casic.dcms.utils.TokenHelper; import com.qmuiteam.qmui.util.QMUIStatusBarHelper; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; @@ -103,15 +102,11 @@ protected void onResume() { super.onResume(); //自动登录 -// if (autoLoginView.isChecked()) { -// String userName = (String) SaveKeyValues.getValue("userName", ""); -// String userPassword = (String) SaveKeyValues.getValue("userPassword", ""); -// if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPassword)) { -// loginPresenter.onReadyRetrofitRequest(userName, userPassword); -// } else { -// Toast.makeText(this, "自动登录失败,请检查", Toast.LENGTH_SHORT).show(); -// } -// } + boolean autoLogin = (boolean) SaveKeyValues.getValue("autoLogin", true); + autoLoginView.setChecked(autoLogin); + if (autoLogin) { + authenticatePresenter.onReadyRetrofitRequest(); + } } @Override @@ -129,16 +124,20 @@ SaveKeyValues.putValue("userName", userName); SaveKeyValues.putValue("userPassword", userPassword); } + if (autoLoginView.isChecked()) { + SaveKeyValues.putValue("autoLogin", true); + } else { + SaveKeyValues.putValue("autoLogin", false); + } if (TextUtils.isEmpty(userName)) { - Toast.makeText(this, "用户名不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("用户名不能为空", ToastHelper.WARING); return; } if (TextUtils.isEmpty(userPassword)) { - Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + ToastHelper.showToast("密码不能为空", ToastHelper.WARING); return; } String dataByPublicKey = RSAUtils.encryptDataByPublicKey(userPassword.getBytes(), publicKey); - Log.d(TAG, "authenticateResult: 验证成功,开始登录"); //登录并获取Token,POST请求 loginPresenter.onReadyRetrofitRequest(userName, dataByPublicKey); } @@ -149,7 +148,6 @@ String token = result.getData().getToken(); if (!TextUtils.isEmpty(token)) { //获取用户信息 - Log.d(TAG, "obtainLoginResult: 获取Token成功"); TokenHelper.saveToken(token); //验证成功登录 startActivity(new Intent(this, MainActivity.class)); diff --git a/app/src/main/java/com/casic/dcms/ui/MapActivity.java b/app/src/main/java/com/casic/dcms/ui/MapActivity.java deleted file mode 100644 index 40a3542..0000000 --- a/app/src/main/java/com/casic/dcms/ui/MapActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.casic.dcms.ui; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; - -import com.casic.dcms.R; -import com.casic.dcms.base.BaseActivity; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolDragListener; -import com.mapbox.mapboxsdk.plugins.annotation.OnSymbolLongClickListener; -import com.mapbox.mapboxsdk.plugins.annotation.Symbol; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager; -import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions; -import com.qmuiteam.qmui.widget.QMUITopBarLayout; - -import org.jetbrains.annotations.NotNull; - -import butterknife.BindView; - -import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT; - -public class MapActivity extends BaseActivity { - - private static final String TAG = "MapActivity"; - @BindView(R.id.mapTopLayout) - QMUITopBarLayout mapTopLayout; - @BindView(R.id.mapBoxView) - MapView mapBoxView; - - @Override - public int initLayoutView() { - return R.layout.activity_map; - } - - @Override - protected void setupTopBarLayout() { - mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); - mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); - mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } - - @Override - public void initData() { - mapBoxView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { -// mapboxMap.setStyle(Style.MAPBOX_STREETS);//基本地图 -// mapboxMap.setStyle(Style.SATELLITE);//卫星图 -// mapboxMap.setStyle(Style.TRAFFIC_DAY);//白天交通路线图 -// mapboxMap.setStyle(Style.SATELLITE_STREETS);//卫星街道图 - mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { - @Override - public void onStyleLoaded(@NonNull Style style) { - //基本地图上面自定义地图 - SymbolManager symbolManager = new SymbolManager(mapBoxView, mapboxMap, style); - symbolManager.addClickListener(new OnSymbolClickListener() { - //点击事件 - @Override - public boolean onAnnotationClick(Symbol symbol) { - Log.d(TAG, "onAnnotationClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addLongClickListener(new OnSymbolLongClickListener() { - //长按事件 - @Override - public boolean onAnnotationLongClick(Symbol symbol) { - Log.d(TAG, "onAnnotationLongClick: " + symbol.getLatLng()); - return false; - } - }); - symbolManager.addDragListener(new OnSymbolDragListener() { - //拖拽事件 - @Override - public void onAnnotationDragStarted(Symbol annotation) { - Log.d(TAG, "onAnnotationDragStarted: 开始"); - } - - @Override - public void onAnnotationDrag(Symbol annotation) { - Log.d(TAG, "onAnnotationDrag: 拖拽中"); - } - - @Override - public void onAnnotationDragFinished(Symbol annotation) { - Log.d(TAG, "onAnnotationDragFinished: 结束"); - } - }); - symbolManager.setIconAllowOverlap(true); - symbolManager.setIconIgnorePlacement(true); - symbolManager.setIconTranslate(new Float[]{-4f, 5f}); - symbolManager.setIconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT); - Symbol symbol = symbolManager.create(new SymbolOptions() - .withLatLng(new LatLng(39.91435564744717, 116.26274417954977)) - .withIconImage("") - .withIconSize(2.0f)); - } - }); - } - }); - } - - @Override - public void initEvent() { - - } - - @Override - protected void onStart() { - super.onStart(); - mapBoxView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapBoxView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapBoxView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapBoxView.onStop(); - } - - @Override - protected void onSaveInstanceState(@NotNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBoxView.onSaveInstanceState(outState); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBoxView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapBoxView.onDestroy(); - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java new file mode 100644 index 0000000..b7a2a27 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/MapBoxActivity.java @@ -0,0 +1,175 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; +import com.mapbox.mapboxsdk.maps.UiSettings; +import com.mapbox.mapboxsdk.plugins.localization.LocalizationPlugin; +import com.mapbox.mapboxsdk.plugins.localization.MapLocale; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; + +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; + +import butterknife.BindView; + +public class MapBoxActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "MapActivity"; + private Context context = this; + @BindView(R.id.mapTopLayout) + QMUITopBarLayout mapTopLayout; + @BindView(R.id.mapBoxView) + MapView mapBoxView; + private MapboxMap map; + + @Override + public int initLayoutView() { + return R.layout.activity_map; + } + + @Override + protected void setupTopBarLayout() { + mapTopLayout.setTitle("选择点位").setTextColor(ContextCompat.getColor(this, R.color.black)); + mapTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.lightGray)); + mapTopLayout.addLeftImageButton(R.drawable.ic_left_black, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + mapTopLayout.addRightImageButton(R.drawable.ic_vertical_point, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIDialog.MenuDialogBuilder(context) + .addItem("卫星图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE); + dialog.dismiss(); + } + }) + .addItem("交通路线图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //交通路线图 + map.setStyle(Style.TRAFFIC_DAY); + dialog.dismiss(); + } + }) + .addItem("卫星图街道图", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + //卫星图 + map.setStyle(Style.SATELLITE_STREETS); + dialog.dismiss(); + } + }).create().show(); + } + }); + } + + @Override + public void initData() { + HashMap locationMap = (HashMap) getIntent().getSerializableExtra("locationMap"); + + mapBoxView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + map = mapboxMap; + /////////////////////////// + if (locationMap != null) { + LatLng latLng = new LatLng(locationMap.get("latitude"), locationMap.get("longitude")); + //添加标注 + mapboxMap.addMarker(new MarkerOptions() + .position(latLng) + .title("I'm Here")); + //移到定位点 + CameraPosition position = new CameraPosition.Builder().target(latLng).zoom(14).tilt(20).build(); + map.animateCamera(CameraUpdateFactory.newCameraPosition(position)); + } + map.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(@NonNull Style style) { + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setCompassMargins(0, QMUIDisplayHelper.dp2px(context, 120), QMUIDisplayHelper.dp2px(context, 40), 0); + LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapBoxView, mapboxMap, style); + localizationPlugin.setMapLanguage(MapLocale.SIMPLIFIED_CHINESE); + + } + }); + } + }); + } + + @Override + public void initEvent() { + + } + + @Override + public void onClick(View v) { + + } + + @Override + protected void onStart() { + super.onStart(); + mapBoxView.onStart(); + } + + @Override + protected void onResume() { + super.onResume(); + mapBoxView.onResume(); + } + + @Override + protected void onPause() { + super.onPause(); + mapBoxView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mapBoxView.onStop(); + } + + @Override + protected void onSaveInstanceState(@NotNull Bundle outState) { + super.onSaveInstanceState(outState); + mapBoxView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapBoxView.onLowMemory(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapBoxView.onDestroy(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index df273ac..4922b08 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -58,7 +58,7 @@ Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show(); return; } - userDataPresenter.onReadyRetrofitRequest(token); + userDataPresenter.onReadyRetrofitRequest(); } @Override diff --git a/app/src/main/java/com/casic/dcms/utils/ColorHelper.java b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java new file mode 100644 index 0000000..00d8669 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ColorHelper.java @@ -0,0 +1,14 @@ +package com.casic.dcms.utils; + +import android.content.Context; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 10:11 + * @Email: 290677893@qq.com + **/ +public class ColorHelper { + public static int getResourcesColor(Context context, int res) { + return context.getResources().getColor(res); + } +} diff --git a/app/src/main/java/com/casic/dcms/utils/FileUtils.java b/app/src/main/java/com/casic/dcms/utils/FileUtils.java index 7e9c161..8a54be3 100644 --- a/app/src/main/java/com/casic/dcms/utils/FileUtils.java +++ b/app/src/main/java/com/casic/dcms/utils/FileUtils.java @@ -14,7 +14,7 @@ if (!audioDir.exists()) { audioDir.mkdir(); } - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA).format(new Date()); File audioFile = new File(audioDir + File.separator + "AUD_" + timeStamp + ".m4a"); if (!audioFile.exists()) { try { diff --git a/app/src/main/java/com/casic/dcms/utils/ToastHelper.java b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java new file mode 100644 index 0000000..e395cfa --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/ToastHelper.java @@ -0,0 +1,52 @@ +package com.casic.dcms.utils; + +import android.annotation.SuppressLint; +import android.content.Context; + +import com.sdsmdg.tastytoast.TastyToast; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:20 + * @Email: 290677893@qq.com + **/ +public class ToastHelper { + + @SuppressLint({"StaticFieldLeak"}) + private static Context context; + public static final int DEFAULT = 0; + public static final int SUCCESS = 1; + public static final int ERROR = 2; + public static final int WARING = 3; + public static final int INFO = 4; + public static final int CONFUSING = 5; + + public static void initToastHelper(Context mContext) { + ToastHelper.context = mContext.getApplicationContext(); + } + + public static void showToast(String msg, int toastStyle) { + switch (toastStyle) { + case DEFAULT: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.DEFAULT); + break; + case SUCCESS: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.SUCCESS); + break; + case ERROR: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.ERROR); + break; + case WARING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.WARNING); + break; + case INFO: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.INFO); + break; + case CONFUSING: + TastyToast.makeText(context, msg, TastyToast.LENGTH_LONG, TastyToast.CONFUSING); + break; + default: + break; + } + } +} 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 2f94587..d5dd48a 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,15 +1,20 @@ package com.casic.dcms.utils.retrofit; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.POST; +import retrofit2.http.Query; import rx.Observable; public interface RetrofitService { @@ -37,8 +42,24 @@ Observable getUser(@Header("token") String token); /** - * 获取事/部件字典分类接口 + * 大类列表查询 */ - @GET("/dict/code/caseType") - Observable getType(@Header("token") String token); + @GET("/case/type/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc); + + /** + * 小类列表查询 + */ + @GET("/case/typeDetail/list") + Observable getLargeClass(@Header("token") String token, + @Query("eorc") String eorc, + @Query("typeId") String typeId); + + /** + * 提交案卷 + */ + @POST("/case/add") + Observable submit(@Header("token") String token, + @Body SubmitInfoBean infoBean); } 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 2e48d0b..9769a94 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 @@ -2,11 +2,15 @@ import android.util.Log; -import com.casic.dcms.bean.CaseTypeBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseSmallClassBean; import com.casic.dcms.bean.LoginResultBean; import com.casic.dcms.bean.PublicKeyBean; +import com.casic.dcms.bean.SubmitInfoBean; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UserBean; import com.casic.dcms.utils.HttpConfig; +import com.casic.dcms.utils.TokenHelper; import org.jetbrains.annotations.NotNull; @@ -68,18 +72,36 @@ /** * 获取用户信息 */ - public static Observable getUserData(String baseUrl, String token) { + public static Observable getUserData(String baseUrl) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getUser(token); + return service.getUser(TokenHelper.getToken()); } /** - * 获取事/部件字典分类 + * 大类列表查询 */ - public static Observable getCaseType(String baseUrl, String token) { + public static Observable getCaseLargeClass(String baseUrl, String eorc) { Retrofit retrofit = createRetrofit(baseUrl); RetrofitService service = retrofit.create(RetrofitService.class); - return service.getType(token); + return service.getLargeClass(TokenHelper.getToken(), eorc); + } + + /** + * 大类列表查询 + */ + public static Observable getCaseSmallClass(String baseUrl, String eorc, String typeId) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getLargeClass(TokenHelper.getToken(), eorc, typeId); + } + + /** + * 提交案卷 + */ + public static Observable submitCase(String baseUrl, SubmitInfoBean infoBean) { + Retrofit retrofit = createRetrofit(baseUrl); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submit(TokenHelper.getToken(), infoBean); } } diff --git a/app/src/main/res/drawable/ic_vertical_point.xml b/app/src/main/res/drawable/ic_vertical_point.xml new file mode 100644 index 0000000..b52fbe8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vertical_point.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 032457a..3ef79ef 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -37,7 +37,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" - android:layout_centerVertical="true" android:layout_marginEnd="20dp" android:text="请选择" android:textColor="@color/darkGray" @@ -50,7 +49,9 @@ - + - + @@ -225,7 +231,8 @@ android:layout_height="wrap_content" android:layout_margin="3dp" android:layout_toStartOf="@id/voiceView" - android:background="@null" /> + android:background="@null" + android:maxLength="50" /> + + + + + + + + + diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 225dc18..fdd698e 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -1,6 +1,5 @@ @@ -11,7 +10,7 @@ android:layout_height="wrap_content" android:fitsSystemWindows="true" /> - @@ -19,10 +18,6 @@ - + android:layout_height="match_parent" /> + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 031ee27..e4f6d1b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ 移动城管 - pk.eyJ1IjoiMTgzMTA1ODE5MTYiLCJhIjoiY2tuN2hxN3p0MDhjeDJxcW5ja3YyMXNjaiJ9.CsMzaHNCpGTrKkuitQiZlg + pk.eyJ1IjoiMTgzMTA1ODE5MTYiLCJhIjoiY2tuN2hna2hhMG9hYzJ1bTFzamY0dXhsaCJ9.yWjMxHEHvXFe8c0AWT1bTQ + AAPK068bca9a1246485881b11f568444dc8ajG37wO52bDOv5NZgrAiOZstaEdqvG0bjKEZJX9gXgvR5Jq56g56eyswsu5ziFquD diff --git a/build.gradle b/build.gradle index 96af85d..436d01f 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,10 @@ maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } google() jcenter() - maven { url 'https://jitpack.io' } + maven { + //url 'https://esri.bintray.com/arcgis'(网站拒绝请求) + url 'https://esri.jfrog.io/artifactory/arcgis'//(新网站) + } maven { url 'https://api.mapbox.com/downloads/v2/releases/maven' authentication { @@ -36,6 +39,7 @@ password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: "" } } + maven { url 'https://jitpack.io' } mavenCentral() } } diff --git a/settings.gradle b/settings.gradle index bb2607a..94970dd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ -rootProject.name='DCMS' +rootProject.name='dcms_cr_app' include ':app'