diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} 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 78880dc..31b2e30 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 @@ -23,7 +23,7 @@ import com.casic.dcms.ui.CaseUploadQuicklyActivity; import com.casic.dcms.ui.CaseVerifyActivity; import com.casic.dcms.ui.DataAnalysisActivity; -import com.casic.dcms.ui.FivePackageUploadActivity; +import com.casic.dcms.ui.ThreePackageUploadActivity; import com.casic.dcms.ui.MapWatchViewActivity; import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; @@ -109,7 +109,7 @@ intent.setClass(context, CaseUploadQuicklyActivity.class); break; case 2: - intent.setClass(context, FivePackageUploadActivity.class); + intent.setClass(context, ThreePackageUploadActivity.class); break; case 3: intent.setClass(context, CaseVerifyActivity.class); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} 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 78880dc..31b2e30 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 @@ -23,7 +23,7 @@ import com.casic.dcms.ui.CaseUploadQuicklyActivity; import com.casic.dcms.ui.CaseVerifyActivity; import com.casic.dcms.ui.DataAnalysisActivity; -import com.casic.dcms.ui.FivePackageUploadActivity; +import com.casic.dcms.ui.ThreePackageUploadActivity; import com.casic.dcms.ui.MapWatchViewActivity; import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; @@ -109,7 +109,7 @@ intent.setClass(context, CaseUploadQuicklyActivity.class); break; case 2: - intent.setClass(context, FivePackageUploadActivity.class); + intent.setClass(context, ThreePackageUploadActivity.class); break; case 3: intent.setClass(context, CaseVerifyActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 3048fbc..e996a24 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -22,7 +22,7 @@ R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); public static final List ALL_ITEMS = Arrays.asList( - "案卷上报", "快速上报", "五包上报", + "案卷上报", "快速上报", "三包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); @@ -67,6 +67,5 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 - public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} 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 78880dc..31b2e30 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 @@ -23,7 +23,7 @@ import com.casic.dcms.ui.CaseUploadQuicklyActivity; import com.casic.dcms.ui.CaseVerifyActivity; import com.casic.dcms.ui.DataAnalysisActivity; -import com.casic.dcms.ui.FivePackageUploadActivity; +import com.casic.dcms.ui.ThreePackageUploadActivity; import com.casic.dcms.ui.MapWatchViewActivity; import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; @@ -109,7 +109,7 @@ intent.setClass(context, CaseUploadQuicklyActivity.class); break; case 2: - intent.setClass(context, FivePackageUploadActivity.class); + intent.setClass(context, ThreePackageUploadActivity.class); break; case 3: intent.setClass(context, CaseVerifyActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 3048fbc..e996a24 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -22,7 +22,7 @@ R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); public static final List ALL_ITEMS = Arrays.asList( - "案卷上报", "快速上报", "五包上报", + "案卷上报", "快速上报", "三包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); @@ -67,6 +67,5 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 - public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 } diff --git a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java index d21b9bd..33b95da 100644 --- a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java @@ -7,13 +7,22 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import android.text.TextUtils; import androidx.core.app.ActivityCompat; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; +import com.esri.arcgisruntime.concurrent.ListenableFuture; +import com.esri.arcgisruntime.data.Feature; +import com.esri.arcgisruntime.data.FeatureQueryResult; +import com.esri.arcgisruntime.data.QueryParameters; +import com.esri.arcgisruntime.layers.FeatureLayer; import org.jetbrains.annotations.NotNull; +import java.util.Iterator; + public class LocationHelper { /** * 获取当前定位 @@ -50,4 +59,29 @@ } }); } + + /** + * 查询社区信息 + */ + public static void obtainCurrentCommunity(FeatureLayer communityLayer, QueryParameters queryParameters, ICommunityListener listener) { + ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); + communityFeatureResult.addDoneListener(new Runnable() { + @Override + public void run() { + try { + FeatureQueryResult result = communityFeatureResult.get(); + Iterator iterator = result.iterator(); + Feature feature = iterator.next(); + //{FID=7, GBID=361024100011001, Note=中大社区、子正社区} + if (feature == null) { + listener.onCommunityFeatureGet(null); + } else { + listener.onCommunityFeatureGet(feature); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} 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 78880dc..31b2e30 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 @@ -23,7 +23,7 @@ import com.casic.dcms.ui.CaseUploadQuicklyActivity; import com.casic.dcms.ui.CaseVerifyActivity; import com.casic.dcms.ui.DataAnalysisActivity; -import com.casic.dcms.ui.FivePackageUploadActivity; +import com.casic.dcms.ui.ThreePackageUploadActivity; import com.casic.dcms.ui.MapWatchViewActivity; import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; @@ -109,7 +109,7 @@ intent.setClass(context, CaseUploadQuicklyActivity.class); break; case 2: - intent.setClass(context, FivePackageUploadActivity.class); + intent.setClass(context, ThreePackageUploadActivity.class); break; case 3: intent.setClass(context, CaseVerifyActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 3048fbc..e996a24 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -22,7 +22,7 @@ R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); public static final List ALL_ITEMS = Arrays.asList( - "案卷上报", "快速上报", "五包上报", + "案卷上报", "快速上报", "三包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); @@ -67,6 +67,5 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 - public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 } diff --git a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java index d21b9bd..33b95da 100644 --- a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java @@ -7,13 +7,22 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import android.text.TextUtils; import androidx.core.app.ActivityCompat; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; +import com.esri.arcgisruntime.concurrent.ListenableFuture; +import com.esri.arcgisruntime.data.Feature; +import com.esri.arcgisruntime.data.FeatureQueryResult; +import com.esri.arcgisruntime.data.QueryParameters; +import com.esri.arcgisruntime.layers.FeatureLayer; import org.jetbrains.annotations.NotNull; +import java.util.Iterator; + public class LocationHelper { /** * 获取当前定位 @@ -50,4 +59,29 @@ } }); } + + /** + * 查询社区信息 + */ + public static void obtainCurrentCommunity(FeatureLayer communityLayer, QueryParameters queryParameters, ICommunityListener listener) { + ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); + communityFeatureResult.addDoneListener(new Runnable() { + @Override + public void run() { + try { + FeatureQueryResult result = communityFeatureResult.get(); + Iterator iterator = result.iterator(); + Feature feature = iterator.next(); + //{FID=7, GBID=361024100011001, Note=中大社区、子正社区} + if (feature == null) { + listener.onCommunityFeatureGet(null); + } else { + listener.onCommunityFeatureGet(feature); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java b/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java new file mode 100644 index 0000000..2a6d5e4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java @@ -0,0 +1,7 @@ +package com.casic.dcms.utils.callback; + +import com.esri.arcgisruntime.data.Feature; + +public interface ICommunityListener { + void onCommunityFeatureGet(Feature feature); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} 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 78880dc..31b2e30 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 @@ -23,7 +23,7 @@ import com.casic.dcms.ui.CaseUploadQuicklyActivity; import com.casic.dcms.ui.CaseVerifyActivity; import com.casic.dcms.ui.DataAnalysisActivity; -import com.casic.dcms.ui.FivePackageUploadActivity; +import com.casic.dcms.ui.ThreePackageUploadActivity; import com.casic.dcms.ui.MapWatchViewActivity; import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; @@ -109,7 +109,7 @@ intent.setClass(context, CaseUploadQuicklyActivity.class); break; case 2: - intent.setClass(context, FivePackageUploadActivity.class); + intent.setClass(context, ThreePackageUploadActivity.class); break; case 3: intent.setClass(context, CaseVerifyActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 3048fbc..e996a24 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -22,7 +22,7 @@ R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); public static final List ALL_ITEMS = Arrays.asList( - "案卷上报", "快速上报", "五包上报", + "案卷上报", "快速上报", "三包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); @@ -67,6 +67,5 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 - public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 } diff --git a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java index d21b9bd..33b95da 100644 --- a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java @@ -7,13 +7,22 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import android.text.TextUtils; import androidx.core.app.ActivityCompat; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; +import com.esri.arcgisruntime.concurrent.ListenableFuture; +import com.esri.arcgisruntime.data.Feature; +import com.esri.arcgisruntime.data.FeatureQueryResult; +import com.esri.arcgisruntime.data.QueryParameters; +import com.esri.arcgisruntime.layers.FeatureLayer; import org.jetbrains.annotations.NotNull; +import java.util.Iterator; + public class LocationHelper { /** * 获取当前定位 @@ -50,4 +59,29 @@ } }); } + + /** + * 查询社区信息 + */ + public static void obtainCurrentCommunity(FeatureLayer communityLayer, QueryParameters queryParameters, ICommunityListener listener) { + ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); + communityFeatureResult.addDoneListener(new Runnable() { + @Override + public void run() { + try { + FeatureQueryResult result = communityFeatureResult.get(); + Iterator iterator = result.iterator(); + Feature feature = iterator.next(); + //{FID=7, GBID=361024100011001, Note=中大社区、子正社区} + if (feature == null) { + listener.onCommunityFeatureGet(null); + } else { + listener.onCommunityFeatureGet(feature); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java b/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java new file mode 100644 index 0000000..2a6d5e4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java @@ -0,0 +1,7 @@ +package com.casic.dcms.utils.callback; + +import com.esri.arcgisruntime.data.Feature; + +public interface ICommunityListener { + void onCommunityFeatureGet(Feature feature); +} 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 03319fa..ea9caa5 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 @@ -334,7 +334,7 @@ */ @FormUrlEncoded @POST("/devicePositionLog/positionUpload") - Observable uploadDevicePosition(@Header("token") String token, + Observable uploadDevicePosition(@Header("token") String token, @Field("imei") String imei, @Field("positionLat") String positionLat, @Field("positionLng") String positionLng); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a71ff1d..1393d70 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -60,7 +60,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java deleted file mode 100644 index 96078b3..0000000 --- a/app/src/main/java/com/casic/dcms/bean/GridFeatureBean.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.casic.dcms.bean; - -public class GridFeatureBean { - - private String BGID; - private String DATASOURCE; - private String DEPTCODE1; - private String DEPTCODE2; - private String DEPTCODE3; - private String DEPTNAME1; - private String DEPTNAME2; - private String DEPTNAME3; - private String MATERIAL; - private String NOTE_; - private int OBJECTID; - private String OBJID; - private String OBJNAME; - private String OBJPOS; - private String OBJSTATE; - private ORDATEBean ORDATE; - private String PICTURE; - - public String getBGID() { - return BGID; - } - - public void setBGID(String BGID) { - this.BGID = BGID; - } - - public String getDATASOURCE() { - return DATASOURCE; - } - - public void setDATASOURCE(String DATASOURCE) { - this.DATASOURCE = DATASOURCE; - } - - public String getDEPTCODE1() { - return DEPTCODE1; - } - - public void setDEPTCODE1(String DEPTCODE1) { - this.DEPTCODE1 = DEPTCODE1; - } - - public String getDEPTCODE2() { - return DEPTCODE2; - } - - public void setDEPTCODE2(String DEPTCODE2) { - this.DEPTCODE2 = DEPTCODE2; - } - - public String getDEPTCODE3() { - return DEPTCODE3; - } - - public void setDEPTCODE3(String DEPTCODE3) { - this.DEPTCODE3 = DEPTCODE3; - } - - public String getDEPTNAME1() { - return DEPTNAME1; - } - - public void setDEPTNAME1(String DEPTNAME1) { - this.DEPTNAME1 = DEPTNAME1; - } - - public String getDEPTNAME2() { - return DEPTNAME2; - } - - public void setDEPTNAME2(String DEPTNAME2) { - this.DEPTNAME2 = DEPTNAME2; - } - - public String getDEPTNAME3() { - return DEPTNAME3; - } - - public void setDEPTNAME3(String DEPTNAME3) { - this.DEPTNAME3 = DEPTNAME3; - } - - public String getMATERIAL() { - return MATERIAL; - } - - public void setMATERIAL(String MATERIAL) { - this.MATERIAL = MATERIAL; - } - - public String getNOTE_() { - return NOTE_; - } - - public void setNOTE_(String NOTE_) { - this.NOTE_ = NOTE_; - } - - public int getOBJECTID() { - return OBJECTID; - } - - public void setOBJECTID(int OBJECTID) { - this.OBJECTID = OBJECTID; - } - - public String getOBJID() { - return OBJID; - } - - public void setOBJID(String OBJID) { - this.OBJID = OBJID; - } - - public String getOBJNAME() { - return OBJNAME; - } - - public void setOBJNAME(String OBJNAME) { - this.OBJNAME = OBJNAME; - } - - public String getOBJPOS() { - return OBJPOS; - } - - public void setOBJPOS(String OBJPOS) { - this.OBJPOS = OBJPOS; - } - - public String getOBJSTATE() { - return OBJSTATE; - } - - public void setOBJSTATE(String OBJSTATE) { - this.OBJSTATE = OBJSTATE; - } - - public ORDATEBean getORDATE() { - return ORDATE; - } - - public void setORDATE(ORDATEBean ORDATE) { - this.ORDATE = ORDATE; - } - - public String getPICTURE() { - return PICTURE; - } - - public void setPICTURE(String PICTURE) { - this.PICTURE = PICTURE; - } - - public static class ORDATEBean { - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } - } -} diff --git a/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java new file mode 100644 index 0000000..8360589 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/PointFutureBean.java @@ -0,0 +1,181 @@ +package com.casic.dcms.bean; + +/** + * 部件属性 + */ +public class PointFutureBean { + + /** + * bgid : 361024100011001 + * chdate : + * datasource : 实测 + * deptcode1 : 3610240016 + * deptcode2 : 3610240016 + * deptcode3 : 3610240016 + * deptname1 : 崇仁县公安局交警大队 + * deptname2 : 崇仁县公安局交警大队 + * deptname3 : 崇仁县公安局交警大队 + * note : + * objectid : 1289 + * objid : 3610240212000144 + * objname : 路名牌 + * objstate : 完好 + * ordate : 20210401 + * x : 410757.9096 + * y : 3072290.091 + */ + + private String bgid; + private String chdate; + private String datasource; + private String deptcode1; + private String deptcode2; + private String deptcode3; + private String deptname1; + private String deptname2; + private String deptname3; + private String note; + private int objectid; + private String objid; + private String objname; + private String objstate; + private int ordate; + private double x; + private double y; + + public String getBgid() { + return bgid; + } + + public void setBgid(String bgid) { + this.bgid = bgid; + } + + public String getChdate() { + return chdate; + } + + public void setChdate(String chdate) { + this.chdate = chdate; + } + + public String getDatasource() { + return datasource; + } + + public void setDatasource(String datasource) { + this.datasource = datasource; + } + + public String getDeptcode1() { + return deptcode1; + } + + public void setDeptcode1(String deptcode1) { + this.deptcode1 = deptcode1; + } + + public String getDeptcode2() { + return deptcode2; + } + + public void setDeptcode2(String deptcode2) { + this.deptcode2 = deptcode2; + } + + public String getDeptcode3() { + return deptcode3; + } + + public void setDeptcode3(String deptcode3) { + this.deptcode3 = deptcode3; + } + + public String getDeptname1() { + return deptname1; + } + + public void setDeptname1(String deptname1) { + this.deptname1 = deptname1; + } + + public String getDeptname2() { + return deptname2; + } + + public void setDeptname2(String deptname2) { + this.deptname2 = deptname2; + } + + public String getDeptname3() { + return deptname3; + } + + public void setDeptname3(String deptname3) { + this.deptname3 = deptname3; + } + + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + public int getObjectid() { + return objectid; + } + + public void setObjectid(int objectid) { + this.objectid = objectid; + } + + public String getObjid() { + return objid; + } + + public void setObjid(String objid) { + this.objid = objid; + } + + public String getObjname() { + return objname; + } + + public void setObjname(String objname) { + this.objname = objname; + } + + public String getObjstate() { + return objstate; + } + + public void setObjstate(String objstate) { + this.objstate = objstate; + } + + public int getOrdate() { + return ordate; + } + + public void setOrdate(int ordate) { + this.ordate = ordate; + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java index 8236bfd..b8e613f 100644 --- a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -2,268 +2,37 @@ public class ShopFeatureBean { - private String Area; - private String BGID; - private String CommuID; - private String CommuName; - private String DataSource; - private String DeptName; - private String DutyName; - private String DutyRange; - private int FID; - private String Notes; - private String ObjID; - private String ObjState; - private ORDateBean ORDate; - private String Picture; - private String Position_; - private double Shape_Area; - private double Shape_Leng; - private String StreetID; - private String StreetName; - private String Tel; - private String UseState; - private String Usingway; + /** + * bgid : 361024100011001 + * dutyname : 又一村特色早餐店 + * objectid : 3026 + */ - public String getArea() { - return Area; + private String bgid; + private String dutyname; + private int objectid; + + public String getBgid() { + return bgid; } - public void setArea(String Area) { - this.Area = Area; + public void setBgid(String bgid) { + this.bgid = bgid; } - public String getBGID() { - return BGID; + public String getDutyname() { + return dutyname; } - public void setBGID(String BGID) { - this.BGID = BGID; + public void setDutyname(String dutyname) { + this.dutyname = dutyname; } - public String getCommuID() { - return CommuID; + public int getObjectid() { + return objectid; } - public void setCommuID(String CommuID) { - this.CommuID = CommuID; - } - - public String getCommuName() { - return CommuName; - } - - public void setCommuName(String CommuName) { - this.CommuName = CommuName; - } - - public String getDataSource() { - return DataSource; - } - - public void setDataSource(String DataSource) { - this.DataSource = DataSource; - } - - public String getDeptName() { - return DeptName; - } - - public void setDeptName(String DeptName) { - this.DeptName = DeptName; - } - - public String getDutyName() { - return DutyName; - } - - public void setDutyName(String DutyName) { - this.DutyName = DutyName; - } - - public String getDutyRange() { - return DutyRange; - } - - public void setDutyRange(String DutyRange) { - this.DutyRange = DutyRange; - } - - public int getFID() { - return FID; - } - - public void setFID(int FID) { - this.FID = FID; - } - - public String getNotes() { - return Notes; - } - - public void setNotes(String Notes) { - this.Notes = Notes; - } - - public String getObjID() { - return ObjID; - } - - public void setObjID(String ObjID) { - this.ObjID = ObjID; - } - - public String getObjState() { - return ObjState; - } - - public void setObjState(String ObjState) { - this.ObjState = ObjState; - } - - public ORDateBean getORDate() { - return ORDate; - } - - public void setORDate(ORDateBean ORDate) { - this.ORDate = ORDate; - } - - public String getPicture() { - return Picture; - } - - public void setPicture(String Picture) { - this.Picture = Picture; - } - - public String getPosition_() { - return Position_; - } - - public void setPosition_(String Position_) { - this.Position_ = Position_; - } - - public double getShape_Area() { - return Shape_Area; - } - - public void setShape_Area(double Shape_Area) { - this.Shape_Area = Shape_Area; - } - - public double getShape_Leng() { - return Shape_Leng; - } - - public void setShape_Leng(double Shape_Leng) { - this.Shape_Leng = Shape_Leng; - } - - public String getStreetID() { - return StreetID; - } - - public void setStreetID(String StreetID) { - this.StreetID = StreetID; - } - - public String getStreetName() { - return StreetName; - } - - public void setStreetName(String StreetName) { - this.StreetName = StreetName; - } - - public String getTel() { - return Tel; - } - - public void setTel(String Tel) { - this.Tel = Tel; - } - - public String getUseState() { - return UseState; - } - - public void setUseState(String UseState) { - this.UseState = UseState; - } - - public String getUsingway() { - return Usingway; - } - - public void setUsingway(String Usingway) { - this.Usingway = Usingway; - } - - public static class ORDateBean { - /** - * year : 2017 - * month : 11 - * dayOfMonth : 22 - * hourOfDay : 0 - * minute : 0 - * second : 0 - */ - - private int year; - private int month; - private int dayOfMonth; - private int hourOfDay; - private int minute; - private int second; - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - public int getMonth() { - return month; - } - - public void setMonth(int month) { - this.month = month; - } - - public int getDayOfMonth() { - return dayOfMonth; - } - - public void setDayOfMonth(int dayOfMonth) { - this.dayOfMonth = dayOfMonth; - } - - public int getHourOfDay() { - return hourOfDay; - } - - public void setHourOfDay(int hourOfDay) { - this.hourOfDay = hourOfDay; - } - - public int getMinute() { - return minute; - } - - public void setMinute(int minute) { - this.minute = minute; - } - - public int getSecond() { - return second; - } - - public void setSecond(int second) { - this.second = second; - } + public void setObjectid(int objectid) { + this.objectid = objectid; } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java new file mode 100644 index 0000000..29ef352 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IUploadPositionModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IUploadPositionModel { + Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java new file mode 100644 index 0000000..84a8458 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/UploadPositionModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class UploadPositionModelImpl implements IUploadPositionModel { + + private OnUpdateListener listener; + + public UploadPositionModelImpl(OnUpdateListener updateListener) { + this.listener = updateListener; + } + + @Override + public Subscription sendRetrofitRequest(String imei, String positionLat, String positionLng) { + Observable observable = RetrofitServiceManager.getPositionUploadResult(imei, positionLat, positionLng); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } + + public interface OnUpdateListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java new file mode 100644 index 0000000..f8942b4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IUploadPositionPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IUploadPositionPresenter { + void onReadyRetrofitRequest(String imei, String positionLat, String positionLng); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java new file mode 100644 index 0000000..6d77f0a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/UploadPositionPresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.UploadPositionModelImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; + +public class UploadPositionPresenterImpl extends BasePresenter implements IUploadPositionPresenter, + UploadPositionModelImpl.OnUpdateListener { + + private IUploadPositionView view; + private UploadPositionModelImpl actionModel; + + public UploadPositionPresenterImpl(IUploadPositionView uploadPositionView) { + this.view = uploadPositionView; + actionModel = new UploadPositionModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String imei, String positionLat, String positionLng) { + addSubscription(actionModel.sendRetrofitRequest(imei, positionLat, positionLng)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.obtainUploadPositionResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java new file mode 100644 index 0000000..8bdda51 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IUploadPositionView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface IUploadPositionView { + void obtainUploadPositionResult(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index 93038fc..75f297c 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -1,30 +1,27 @@ package com.casic.dcms.ui; import android.annotation.SuppressLint; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.location.Location; -import android.os.Handler; -import android.os.Message; +import android.util.Log; import android.view.MotionEvent; 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.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.PointFutureBean; import com.casic.dcms.bean.ShopFeatureBean; -import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; -import com.casic.dcms.utils.SaveKeyValues; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; import com.esri.arcgisruntime.concurrent.ListenableFuture; import com.esri.arcgisruntime.data.Feature; -import com.esri.arcgisruntime.data.FeatureQueryResult; import com.esri.arcgisruntime.data.QueryParameters; import com.esri.arcgisruntime.data.ServiceFeatureTable; import com.esri.arcgisruntime.geometry.Point; @@ -47,11 +44,9 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.lang.ref.WeakReference; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,12 +56,12 @@ public class ArcGISMapActivity extends BaseActivity implements View.OnClickListener { private static final String TAG = "ArcGISMapActivity"; + private Context context = ArcGISMapActivity.this; @BindView(R.id.gisTopLayout) QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; - private WeakReferenceHandler weakReferenceHandler; + private FeatureLayer communityLayer, pointLayer, packageLayer; private Point clickPoint; private Gson gson; private String caseType; @@ -92,21 +87,20 @@ public void initData() { caseType = getIntent().getStringExtra("type"); gson = new Gson(); - weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小,缩放比例[36000,250] + mapView.setViewpointScaleAsync(2000);//数字越大,放大比例越小,缩放比例[36000,250] ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); arcGISMap.setMaxScale(250); //创建底图、并设置底图图层 - ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_SERVICE_URL); + ArcGISTiledLayer baseLayer = new ArcGISTiledLayer(Constant.BASE_MAP_SERVICE_URL); Basemap basemap = new Basemap(baseLayer); arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 4) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/4"); + //网格和社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); communityLayer = new FeatureLayer(communityFeatureTable); /** @@ -115,23 +109,16 @@ * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); + //部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); pointLayer = new FeatureLayer(pointFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); break; - case "五包上报": - //门前三包 (ID: 8) - ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/8"); + case "三包上报": + //门前三包 (ID: 2) + ServiceFeatureTable packageFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/2"); packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); packageLayer = new FeatureLayer(packageFeatureTable); arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); @@ -153,90 +140,111 @@ //查询参数 QueryParameters queryParameters = new QueryParameters(); queryParameters.setGeometry(clickPoint);//查询点击位置所在的社区 - queryParameters.setReturnGeometry(true); - //不管是时间还是部件,都的需要社区信息 - ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - communityFeatureResult.addDoneListener(new Runnable() { + //不管是事件还是部件,都的需要社区信息 + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - FeatureQueryResult result = communityFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - //直接存sp - SaveKeyValues.putValue("CommunityName", feature.getAttributes().get("CommuName")); - } catch (Exception e) { - e.printStackTrace(); + public void onCommunityFeatureGet(Feature feature) { + if (caseType.equals("事件")) { + Map attributes = feature.getAttributes(); + showDialog((String) attributes.get("GBID"), (String) attributes.get("Note")); } } }); switch (caseType) { - case "事件": - //事件只需要获得gridId就行 - ListenableFuture unitFeatureResult = unitLayer.getFeatureTable().queryFeaturesAsync(queryParameters); - unitFeatureResult.addDoneListener(new Runnable() { - @Override - public void run() { - try { - FeatureQueryResult result = unitFeatureResult.get(); - Iterator iterator = result.iterator(); - Feature feature = iterator.next(); - - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104261; - message.obj = feature.getAttributes(); - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - break; case "部件": - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> pointList = new ArrayList<>(); + ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); + pointFuture.addDoneListener(() -> { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type gridType = new TypeToken>() { + }.getType(); + List beans = gson.fromJson(gson.toJson(pointList), gridType); + for (PointFutureBean featureBean : beans) { + menuDialogBuilder.addItem(featureBean.getObjid() + "(" + featureBean.getObjname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showDialog( + featureBean.getBgid(), + featureBean.getObjid(), + featureBean.getObjname(), + featureBean.getDeptname1(), + featureBean.getDeptname2(), + (String) feature.getAttributes().get("Note")); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e1) { + e1.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; - case "五包上报": - List> shopList = new ArrayList<>(); - ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); - packageFuture.addDoneListener(new Runnable() { + case "三包上报": + LocationHelper.obtainCurrentCommunity(communityLayer, queryParameters, new ICommunityListener() { @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = packageFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - shopList.add(attributes); + public void onCommunityFeatureGet(Feature feature) { + //先取社区信息,再取部件信息 + List> shopList = new ArrayList<>(); + ListenableFuture packageFuture = mapView.identifyLayerAsync(packageLayer, screenPoint, 15, false, -1); + packageFuture.addDoneListener(new Runnable() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Log.d(TAG, "shopList: " + gson.toJson(shopList)); + runOnUiThread(() -> { + QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(context); + menuDialogBuilder.setTitle("请选择您要上报的部件"); + Type shopType = new TypeToken>() { + }.getType(); + List shopBeans = gson.fromJson(gson.toJson(shopList), shopType); + + //设置dialog列表 + menuDialogBuilder.setTitle("请选择商户"); + for (ShopFeatureBean featureBean : shopBeans) { + menuDialogBuilder.addItem(featureBean.getObjectid() + "(" + featureBean.getDutyname() + ")", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + showShopDialog(featureBean.getBgid(), + (String) feature.getAttributes().get("Note"), + featureBean.getDutyname(), + "", + "", + String.valueOf(featureBean.getObjectid())); + } + }); + } + menuDialogBuilder.create().show(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 20210427; - message.obj = shopList; - weakReferenceHandler.sendMessage(message); - } catch (Exception e) { - e.printStackTrace(); - } + }); } }); break; @@ -247,75 +255,8 @@ } /** - * 弱应用Handler,防止内存泄漏 + * 三包 */ - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(ArcGISMapActivity activity) { - reference = new WeakReference<>(activity); - } - - @Override - public void handleMessage(@NonNull Message msg) { - super.handleMessage(msg); - ArcGISMapActivity arcGISMapActivity = reference.get(); - Gson gson = arcGISMapActivity.gson; - String communityName = (String) SaveKeyValues.getValue("CommunityName", ""); - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(arcGISMapActivity); - switch (msg.what) { - case 202104261: - Type unitType = new TypeToken() { - }.getType(); - UnitFeatureBean unitFeatureBean = gson.fromJson(gson.toJson(msg.obj), unitType); - - arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName, communityName); - break; - case 202104262: - Type gridType = new TypeToken>() { - }.getType(); - List beans = gson.fromJson(gson.toJson(msg.obj), gridType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择您要上报的部件"); - for (GridFeatureBean featureBean : beans) { - menuDialogBuilder.addItem(featureBean.getOBJNAME() + "," + featureBean.getOBJECTID(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showDialog(featureBean.getBGID(), communityName, featureBean.getOBJPOS()); - } - }); - } - menuDialogBuilder.create().show(); - break; - case 20210427: - Type shopType = new TypeToken>() { - }.getType(); - List shopBeans = gson.fromJson(gson.toJson(msg.obj), shopType); - - //设置dialog列表 - menuDialogBuilder.setTitle("请选择商户"); - for (ShopFeatureBean featureBean : shopBeans) { - menuDialogBuilder.addItem(featureBean.getTel() + "(" + featureBean.getDutyName() + ")", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - arcGISMapActivity.showShopDialog(featureBean.getBGID(), - featureBean.getCommuName(), - featureBean.getDutyName(), - featureBean.getTel(), - featureBean.getNotes(), - featureBean.getObjID()); - } - }); - } - menuDialogBuilder.create().show(); - break; - } - } - } - private void showShopDialog(String gridId, String communityName, String shopName, String phoneNumber, String shopKeeper, String shopID) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") @@ -342,11 +283,17 @@ .create().show(); } - private void showDialog(String gridId, String communityName, String pos) { + /** + * 部件 + */ + private void showDialog(String gridId, String objId, String objName, String largeType, String smallType, String communityName) { if (!this.isFinishing()) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件地点所在网格为[" + gridId + "]" + ",\r\n选择部件为:" + objId + "(" + objName + ")" + + "\r\n部件大类为:" + largeType + + "\r\n小类为:" + smallType + + "\r\n确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -358,7 +305,6 @@ intent.putExtra("longitude", clickPoint.getX()); intent.putExtra("community", communityName); intent.putExtra("gridId", gridId); - intent.putExtra("pos", pos); setResult(RESULT_OK, intent); finish(); } @@ -368,6 +314,32 @@ } /** + * 事件 + */ + private void showDialog(String gridId, String communityName) { + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("该事件所在地点网格为[" + gridId + "]确认选择?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }).create().show(); + } + } + + /** * //[116.598359, 28.247870, 0.000000, NaN] SR: 4326 */ private void addMarker(Point clickPoint) { 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 b1a47aa..56ab60c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -400,7 +400,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index 2ab5a19..7486473 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -33,7 +33,6 @@ import com.casic.dcms.utils.GlideLoadEngine; import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.luck.picture.lib.PictureSelector; @@ -292,7 +291,6 @@ longitudeView.setText(String.valueOf(longitude)); latitudeView.setText(String.valueOf(latitude)); communityNameView.setText(community); - SaveKeyValues.removeKey("CommunityName"); break; default: break; diff --git a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java index 3f40dae..8fb8fb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DisplayMapActivity.java @@ -60,9 +60,9 @@ @Override public void initData() { String caseType = getIntent().getStringExtra("caseType"); +// Log.d(TAG, "caseType: " + caseType); lng = getIntent().getDoubleExtra("lng", 0); lat = getIntent().getDoubleExtra("lat", 0); -// Log.d(TAG, caseType + ",[" + lng + "," + lat + "]"); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 @@ -75,26 +75,15 @@ arcGISMap.setBasemap(basemap); mapView.setMap(arcGISMap); - //社区 (ID: 15) - ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/15"); + //社区 (ID: 13) + ServiceFeatureTable communityFeatureTable = new ServiceFeatureTable(Constant.BASE_MAP_SERVICE_URL + "/13"); communityFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); FeatureLayer communityLayer = new FeatureLayer(communityFeatureTable); - assert caseType != null; - switch (caseType) { - case "事件": - //单元网格 (ID: 6) - ServiceFeatureTable unitFeatureTable = new ServiceFeatureTable(Constant.BASE_SERVICE_URL + "/6"); - unitFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer unitLayer = new FeatureLayer(unitFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, unitLayer)); - break; - case "部件": - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); - break; + if ("部件".equals(caseType)) {//部件点图层 (ID: 1) + ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/1"); + pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + FeatureLayer pointLayer = new FeatureLayer(pointFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); } mapView.setMap(arcGISMap); } diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java deleted file mode 100644 index e5bdf09..0000000 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseSubmitCaseView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.OtherUtils; -import com.casic.dcms.utils.SaveKeyValues; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -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.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class FivePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { - - private Context context = FivePackageUploadActivity.this; - @BindView(R.id.shopView) - TextView shopView; - @BindView(R.id.communityView) - EditText communityView; - @BindView(R.id.longitudeView) - EditText longitudeView; - @BindView(R.id.latitudeView) - EditText latitudeView; - @BindView(R.id.caseLocationView) - EditText caseLocationView; - @BindView(R.id.caseDetailEditView) - EditText caseDetailEditView; - @BindView(R.id.selectedResultView) - RecyclerView selectedResultView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private UploadImagePresenterImpl uploadImagePresenter; - private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; - private ImageRecycleViewAdapter imageAdapter; - private QMUITipDialog submitDialog; - private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - private String gridId, shopKeeper, phoneNumber, shopID; - - @Override - public int initLayoutView() { - return R.layout.activity_package; - } - - @Override - protected String setTitleName() { - return "五包上报"; - } - - @Override - public void initData() { - uploadImagePresenter = new UploadImagePresenterImpl(this); - shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - imageAdapter = new ImageRecycleViewAdapter(this); - selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); - selectedResultView.addItemDecoration(new ItemDecorationSpace()); - selectedResultView.setAdapter(imageAdapter); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.shopLayout: - Intent intent = new Intent(this, ArcGISMapActivity.class); - intent.putExtra("type", "五包上报"); - startActivityForResult(intent, Constant.REQUEST_MAP_CODE); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .setCanceledOnTouchOutside(false) - .create().show(); - break; - case R.id.submitButton: - submitCase(); - break; - } - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - case Constant.REQUEST_MAP_CODE: - if (data == null) { - return; - } - double longitude = data.getDoubleExtra("longitude", 0); - double latitude = data.getDoubleExtra("latitude", 0); - gridId = data.getStringExtra("gridId"); - String community = data.getStringExtra("community"); - String shopName = data.getStringExtra("shopName"); - phoneNumber = data.getStringExtra("phoneNumber"); - shopKeeper = data.getStringExtra("shopKeeper"); - shopID = data.getStringExtra("shopID"); - - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - communityView.setText(community); - shopView.setText(shopName); - SaveKeyValues.removeKey("CommunityName"); - break; - default: - break; - } - } - } - - /** - * 案卷提交 - */ - private void submitCase() { - String longitude = longitudeView.getText().toString(); - String latitude = latitudeView.getText().toString(); - if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { - ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); - return; - } - - String fieldIntro = caseLocationView.getText().toString(); - if (TextUtils.isEmpty(fieldIntro)) { - ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); - return; - } - String description = caseDetailEditView.getText().toString(); - if (TextUtils.isEmpty(description)) { - ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); - return; - } - if (mediaList.size() != 2) { - ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); - return; - } - shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, - "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), - gridId, gridId, description, fieldIntro, - StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainSubmitResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); - } - } - - @Override - public void obtainDataFail() { - ToastHelper.showToast("操作失败", ToastHelper.ERROR); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); - } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5f857bc..5d74463 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -3,6 +3,10 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.location.Location; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; import android.view.MenuItem; import android.widget.TextView; @@ -14,15 +18,21 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; import com.casic.dcms.base.DoubleClickExitActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; +import com.casic.dcms.mvp.view.IUploadPositionView; import com.casic.dcms.ui.fragment.DashBoardPageFragment; import com.casic.dcms.ui.fragment.HomePageFragment; import com.casic.dcms.ui.fragment.MinePageFragment; import com.casic.dcms.ui.fragment.PhonePageFragment; import com.casic.dcms.utils.BroadcastManager; import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.callback.ILocationListener; import com.casic.dcms.widgets.NoScrollViewPager; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import java.util.ArrayList; @@ -30,7 +40,7 @@ import butterknife.BindView; -public class MainActivity extends DoubleClickExitActivity { +public class MainActivity extends DoubleClickExitActivity implements IUploadPositionView { private static final String TAG = "MainActivity"; @BindView(R.id.pageTitleView) @@ -42,6 +52,7 @@ private MenuItem menuItem; private List pageList; private BroadcastManager broadcastManager; + private UploadPositionPresenterImpl uploadPositionPresenter; @Override public int initLayoutView() { @@ -59,6 +70,7 @@ public void initData() { //个推初始化 com.igexin.sdk.PushManager.getInstance().initialize(this); + uploadPositionPresenter = new UploadPositionPresenterImpl(this); pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -80,6 +92,18 @@ } } }); + String ANDROID_ID = Settings.System.getString(getContentResolver(), Settings.Secure.ANDROID_ID); + if (TextUtils.isEmpty(ANDROID_ID)) { + return; + } + LocationHelper.obtainCurrentLocation(this, new ILocationListener() { + @Override + public void onLocationGet(Location location) { + uploadPositionPresenter.onReadyRetrofitRequest(ANDROID_ID, + String.valueOf(location.getLatitude()), + String.valueOf(location.getLongitude())); + } + }); } @Override @@ -138,7 +162,15 @@ @Override protected void onDestroy() { - broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); super.onDestroy(); + broadcastManager.destroy(Constant.LOGIN_OUT_ACTION); + if (uploadPositionPresenter != null) { + uploadPositionPresenter.disposeRetrofitRequest(); + } + } + + @Override + public void obtainUploadPositionResult(ActionResultBean resultBean) { + Log.d(TAG, "obtainUploadPositionResult: " + new Gson().toJson(resultBean)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java new file mode 100644 index 0000000..6a0a96d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -0,0 +1,307 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.presenter.ShopCaseSubmitPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +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.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener + , IUploadFileView, ICaseSubmitCaseView { + + private Context context = ThreePackageUploadActivity.this; + @BindView(R.id.shopView) + TextView shopView; + @BindView(R.id.communityView) + EditText communityView; + @BindView(R.id.longitudeView) + EditText longitudeView; + @BindView(R.id.latitudeView) + EditText latitudeView; + @BindView(R.id.caseLocationView) + EditText caseLocationView; + @BindView(R.id.caseDetailEditView) + EditText caseDetailEditView; + @BindView(R.id.selectedResultView) + RecyclerView selectedResultView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; + private ImageRecycleViewAdapter imageAdapter; + private QMUITipDialog submitDialog; + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + + @Override + public int initLayoutView() { + return R.layout.activity_package; + } + + @Override + protected String setTitleName() { + return "三包上报"; + } + + @Override + public void initData() { + uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + imageAdapter = new ImageRecycleViewAdapter(this); + selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); + selectedResultView.addItemDecoration(new ItemDecorationSpace()); + selectedResultView.setAdapter(imageAdapter); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @OnClick({R.id.shopLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.shopLayout: + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", "三包上报"); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .setCanceledOnTouchOutside(false) + .create().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + case Constant.REQUEST_MAP_CODE: + if (data == null) { + return; + } + double longitude = data.getDoubleExtra("longitude", 0); + double latitude = data.getDoubleExtra("latitude", 0); + gridId = data.getStringExtra("gridId"); + String community = data.getStringExtra("community"); + String shopName = data.getStringExtra("shopName"); + phoneNumber = data.getStringExtra("phoneNumber"); + shopKeeper = data.getStringExtra("shopKeeper"); + shopID = data.getStringExtra("shopID"); + + longitudeView.setText(String.valueOf(longitude)); + latitudeView.setText(String.valueOf(latitude)); + communityView.setText(community); + shopView.setText(shopName); + break; + default: + break; + } + } + } + + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + if (longitude.equals("0") || latitude.equals("0") || TextUtils.isEmpty(longitude) || TextUtils.isEmpty(latitude)) { + ToastHelper.showToast("经纬度异常,请重新选择位置", ToastHelper.WARING); + return; + } + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); + return; + } + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + return; + } + if (mediaList.size() != 2) { + ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); + return; + } + shopCaseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, + "2", "1", gridId.substring(0, 6), gridId.substring(0, 9), + gridId, gridId, description, fieldIntro, + StringHelper.reformatURL(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainSubmitResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); + } + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } +} 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 78880dc..31b2e30 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 @@ -23,7 +23,7 @@ import com.casic.dcms.ui.CaseUploadQuicklyActivity; import com.casic.dcms.ui.CaseVerifyActivity; import com.casic.dcms.ui.DataAnalysisActivity; -import com.casic.dcms.ui.FivePackageUploadActivity; +import com.casic.dcms.ui.ThreePackageUploadActivity; import com.casic.dcms.ui.MapWatchViewActivity; import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; @@ -109,7 +109,7 @@ intent.setClass(context, CaseUploadQuicklyActivity.class); break; case 2: - intent.setClass(context, FivePackageUploadActivity.class); + intent.setClass(context, ThreePackageUploadActivity.class); break; case 3: intent.setClass(context, CaseVerifyActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 3048fbc..e996a24 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -22,7 +22,7 @@ R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); public static final List ALL_ITEMS = Arrays.asList( - "案卷上报", "快速上报", "五包上报", + "案卷上报", "快速上报", "三包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); @@ -67,6 +67,5 @@ public static final String NOTICE_MSG = "receivePush"; public static final String BASE_MAP_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crdt/MapServer";//崇仁城管地图底图 - public static final String BASE_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/2w/MapServer"; //底图图层 - public static final String COMPONENT_SERVICE_URL = "http://223.84.218.107:6080/arcgis/rest/services/dx/dxbj/FeatureServer"; //部件点图层 + public static final String COMPONENT_SERVICE_URL = "http://111.198.10.15:13002/arcgis/rest/services/crbj/FeatureServer";//崇仁部件图层 } diff --git a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java index d21b9bd..33b95da 100644 --- a/app/src/main/java/com/casic/dcms/utils/LocationHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/LocationHelper.java @@ -7,13 +7,22 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import android.text.TextUtils; import androidx.core.app.ActivityCompat; +import com.casic.dcms.utils.callback.ICommunityListener; import com.casic.dcms.utils.callback.ILocationListener; +import com.esri.arcgisruntime.concurrent.ListenableFuture; +import com.esri.arcgisruntime.data.Feature; +import com.esri.arcgisruntime.data.FeatureQueryResult; +import com.esri.arcgisruntime.data.QueryParameters; +import com.esri.arcgisruntime.layers.FeatureLayer; import org.jetbrains.annotations.NotNull; +import java.util.Iterator; + public class LocationHelper { /** * 获取当前定位 @@ -50,4 +59,29 @@ } }); } + + /** + * 查询社区信息 + */ + public static void obtainCurrentCommunity(FeatureLayer communityLayer, QueryParameters queryParameters, ICommunityListener listener) { + ListenableFuture communityFeatureResult = communityLayer.getFeatureTable().queryFeaturesAsync(queryParameters); + communityFeatureResult.addDoneListener(new Runnable() { + @Override + public void run() { + try { + FeatureQueryResult result = communityFeatureResult.get(); + Iterator iterator = result.iterator(); + Feature feature = iterator.next(); + //{FID=7, GBID=361024100011001, Note=中大社区、子正社区} + if (feature == null) { + listener.onCommunityFeatureGet(null); + } else { + listener.onCommunityFeatureGet(feature); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java b/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java new file mode 100644 index 0000000..2a6d5e4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/callback/ICommunityListener.java @@ -0,0 +1,7 @@ +package com.casic.dcms.utils.callback; + +import com.esri.arcgisruntime.data.Feature; + +public interface ICommunityListener { + void onCommunityFeatureGet(Feature feature); +} 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 03319fa..ea9caa5 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 @@ -334,7 +334,7 @@ */ @FormUrlEncoded @POST("/devicePositionLog/positionUpload") - Observable uploadDevicePosition(@Header("token") String token, + Observable uploadDevicePosition(@Header("token") String token, @Field("imei") String imei, @Field("positionLat") String positionLat, @Field("positionLng") String positionLng); 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 0412275..1d30d5b 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 @@ -381,7 +381,7 @@ /** * 设备定位信息上传 */ - public static Observable getPositionUploadResult(String imei, String positionLat, String positionLng) { + public static Observable getPositionUploadResult(String imei, String positionLat, String positionLng) { Retrofit retrofit = createRetrofit(); RetrofitService service = retrofit.create(RetrofitService.class); return service.uploadDevicePosition(TokenHelper.getToken(), imei, positionLat, positionLng);