diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index d53b46e..e1ec347 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.ShopFeatureBean; import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -64,7 +65,7 @@ QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer; + private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; private WeakReferenceHandler weakReferenceHandler; private Point clickPoint; private Gson gson; @@ -93,7 +94,7 @@ gson = new Gson(); weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(2400);//数字越大,放大比例越小 + mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小 ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); @@ -113,18 +114,28 @@ * * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ - if (caseType.equals("事件")) { - //单元网格 (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(unitLayer, communityLayer)); - } else { - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); + 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"); + 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"); + packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + packageLayer = new FeatureLayer(packageFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); + break; } mapView.setMap(arcGISMap); } @@ -160,49 +171,75 @@ } } }); - if (caseType.equals("事件")) { - //事件只需要获得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(); + 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(); - } - } - }); - } else { - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { - @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + Message message = weakReferenceHandler.obtainMessage(); + message.what = 202104261; + message.obj = feature.getAttributes(); + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Message message = weakReferenceHandler.obtainMessage(); + message.what = 20210427; + message.obj = shopList; + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + break; } return true; } @@ -225,30 +262,90 @@ 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); - String gridId = unitFeatureBean.getBGID(); -// Log.d(TAG, "UnitFeatureBean: " + gridId); - arcGISMapActivity.showDialog(gridId, communityName); + + arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName); break; case 202104262: Type gridType = new TypeToken>() { }.getType(); List beans = gson.fromJson(gson.toJson(msg.obj), gridType); -// Log.d(TAG, "GridFeatureBean: " + gson.toJson(beans)); - arcGISMapActivity.showObjListDialog(beans, communityName); + + //设置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); + } + }); + } + 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("提示") + .setMessage("已选择商户:" + shopName + "\r\n手机号:" + phoneNumber + "\r\n确认提交?") + .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("shopName", shopName); + intent.putExtra("phoneNumber", phoneNumber); + intent.putExtra("shopKeeper", shopKeeper); + intent.putExtra("shopID", shopID); + 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(); + } + private void showDialog(String gridId, String communityName) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该时间所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -268,18 +365,7 @@ } private void showObjListDialog(List beans, String communityName) { - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(this); - 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(); - showDialog(featureBean.getBGID(), communityName); - } - }); - } - menuDialogBuilder.create().show(); + } /** diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index d53b46e..e1ec347 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.ShopFeatureBean; import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -64,7 +65,7 @@ QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer; + private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; private WeakReferenceHandler weakReferenceHandler; private Point clickPoint; private Gson gson; @@ -93,7 +94,7 @@ gson = new Gson(); weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(2400);//数字越大,放大比例越小 + mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小 ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); @@ -113,18 +114,28 @@ * * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ - if (caseType.equals("事件")) { - //单元网格 (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(unitLayer, communityLayer)); - } else { - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); + 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"); + 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"); + packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + packageLayer = new FeatureLayer(packageFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); + break; } mapView.setMap(arcGISMap); } @@ -160,49 +171,75 @@ } } }); - if (caseType.equals("事件")) { - //事件只需要获得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(); + 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(); - } - } - }); - } else { - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { - @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + Message message = weakReferenceHandler.obtainMessage(); + message.what = 202104261; + message.obj = feature.getAttributes(); + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Message message = weakReferenceHandler.obtainMessage(); + message.what = 20210427; + message.obj = shopList; + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + break; } return true; } @@ -225,30 +262,90 @@ 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); - String gridId = unitFeatureBean.getBGID(); -// Log.d(TAG, "UnitFeatureBean: " + gridId); - arcGISMapActivity.showDialog(gridId, communityName); + + arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName); break; case 202104262: Type gridType = new TypeToken>() { }.getType(); List beans = gson.fromJson(gson.toJson(msg.obj), gridType); -// Log.d(TAG, "GridFeatureBean: " + gson.toJson(beans)); - arcGISMapActivity.showObjListDialog(beans, communityName); + + //设置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); + } + }); + } + 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("提示") + .setMessage("已选择商户:" + shopName + "\r\n手机号:" + phoneNumber + "\r\n确认提交?") + .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("shopName", shopName); + intent.putExtra("phoneNumber", phoneNumber); + intent.putExtra("shopKeeper", shopKeeper); + intent.putExtra("shopID", shopID); + 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(); + } + private void showDialog(String gridId, String communityName) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该时间所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -268,18 +365,7 @@ } private void showObjListDialog(List beans, String communityName) { - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(this); - 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(); - showDialog(featureBean.getBGID(), communityName); - } - }); - } - menuDialogBuilder.create().show(); + } /** 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 965cb26..26aed87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -124,7 +124,7 @@ private UploadImagePresenterImpl uploadImagePresenter; private List imageList = new ArrayList<>();//服务器返回的拍照数据集 private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//服务器返回的数据集 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index d53b46e..e1ec347 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.ShopFeatureBean; import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -64,7 +65,7 @@ QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer; + private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; private WeakReferenceHandler weakReferenceHandler; private Point clickPoint; private Gson gson; @@ -93,7 +94,7 @@ gson = new Gson(); weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(2400);//数字越大,放大比例越小 + mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小 ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); @@ -113,18 +114,28 @@ * * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ - if (caseType.equals("事件")) { - //单元网格 (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(unitLayer, communityLayer)); - } else { - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); + 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"); + 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"); + packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + packageLayer = new FeatureLayer(packageFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); + break; } mapView.setMap(arcGISMap); } @@ -160,49 +171,75 @@ } } }); - if (caseType.equals("事件")) { - //事件只需要获得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(); + 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(); - } - } - }); - } else { - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { - @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + Message message = weakReferenceHandler.obtainMessage(); + message.what = 202104261; + message.obj = feature.getAttributes(); + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Message message = weakReferenceHandler.obtainMessage(); + message.what = 20210427; + message.obj = shopList; + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + break; } return true; } @@ -225,30 +262,90 @@ 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); - String gridId = unitFeatureBean.getBGID(); -// Log.d(TAG, "UnitFeatureBean: " + gridId); - arcGISMapActivity.showDialog(gridId, communityName); + + arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName); break; case 202104262: Type gridType = new TypeToken>() { }.getType(); List beans = gson.fromJson(gson.toJson(msg.obj), gridType); -// Log.d(TAG, "GridFeatureBean: " + gson.toJson(beans)); - arcGISMapActivity.showObjListDialog(beans, communityName); + + //设置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); + } + }); + } + 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("提示") + .setMessage("已选择商户:" + shopName + "\r\n手机号:" + phoneNumber + "\r\n确认提交?") + .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("shopName", shopName); + intent.putExtra("phoneNumber", phoneNumber); + intent.putExtra("shopKeeper", shopKeeper); + intent.putExtra("shopID", shopID); + 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(); + } + private void showDialog(String gridId, String communityName) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该时间所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -268,18 +365,7 @@ } private void showObjListDialog(List beans, String communityName) { - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(this); - 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(); - showDialog(featureBean.getBGID(), communityName); - } - }); - } - menuDialogBuilder.create().show(); + } /** 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 965cb26..26aed87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -124,7 +124,7 @@ private UploadImagePresenterImpl uploadImagePresenter; private List imageList = new ArrayList<>();//服务器返回的拍照数据集 private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//服务器返回的数据集 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; 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 59731cd..8f67b87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -36,6 +36,7 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; @@ -97,7 +98,8 @@ private QMUITipDialog submitDialog; private Gson gson; private UploadImagePresenterImpl uploadImagePresenter; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; @@ -373,28 +375,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } @@ -426,7 +428,6 @@ ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } - //361029001003141 caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, "1", "1", eorc, typeCode, typeDetailCode, gridId.substring(0, 6), diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index d53b46e..e1ec347 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.ShopFeatureBean; import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -64,7 +65,7 @@ QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer; + private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; private WeakReferenceHandler weakReferenceHandler; private Point clickPoint; private Gson gson; @@ -93,7 +94,7 @@ gson = new Gson(); weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(2400);//数字越大,放大比例越小 + mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小 ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); @@ -113,18 +114,28 @@ * * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ - if (caseType.equals("事件")) { - //单元网格 (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(unitLayer, communityLayer)); - } else { - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); + 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"); + 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"); + packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + packageLayer = new FeatureLayer(packageFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); + break; } mapView.setMap(arcGISMap); } @@ -160,49 +171,75 @@ } } }); - if (caseType.equals("事件")) { - //事件只需要获得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(); + 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(); - } - } - }); - } else { - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { - @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + Message message = weakReferenceHandler.obtainMessage(); + message.what = 202104261; + message.obj = feature.getAttributes(); + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Message message = weakReferenceHandler.obtainMessage(); + message.what = 20210427; + message.obj = shopList; + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + break; } return true; } @@ -225,30 +262,90 @@ 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); - String gridId = unitFeatureBean.getBGID(); -// Log.d(TAG, "UnitFeatureBean: " + gridId); - arcGISMapActivity.showDialog(gridId, communityName); + + arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName); break; case 202104262: Type gridType = new TypeToken>() { }.getType(); List beans = gson.fromJson(gson.toJson(msg.obj), gridType); -// Log.d(TAG, "GridFeatureBean: " + gson.toJson(beans)); - arcGISMapActivity.showObjListDialog(beans, communityName); + + //设置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); + } + }); + } + 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("提示") + .setMessage("已选择商户:" + shopName + "\r\n手机号:" + phoneNumber + "\r\n确认提交?") + .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("shopName", shopName); + intent.putExtra("phoneNumber", phoneNumber); + intent.putExtra("shopKeeper", shopKeeper); + intent.putExtra("shopID", shopID); + 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(); + } + private void showDialog(String gridId, String communityName) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该时间所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -268,18 +365,7 @@ } private void showObjListDialog(List beans, String communityName) { - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(this); - 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(); - showDialog(featureBean.getBGID(), communityName); - } - }); - } - menuDialogBuilder.create().show(); + } /** 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 965cb26..26aed87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -124,7 +124,7 @@ private UploadImagePresenterImpl uploadImagePresenter; private List imageList = new ArrayList<>();//服务器返回的拍照数据集 private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//服务器返回的数据集 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; 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 59731cd..8f67b87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -36,6 +36,7 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; @@ -97,7 +98,8 @@ private QMUITipDialog submitDialog; private Gson gson; private UploadImagePresenterImpl uploadImagePresenter; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; @@ -373,28 +375,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } @@ -426,7 +428,6 @@ ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } - //361029001003141 caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, "1", "1", eorc, typeCode, typeDetailCode, gridId.substring(0, 6), diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java index 9026180..1606086 100644 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java @@ -2,11 +2,11 @@ import android.content.DialogInterface; import android.content.Intent; -import android.location.Address; -import android.location.Geocoder; +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.core.content.ContextCompat; @@ -16,8 +16,11 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageRecycleViewAdapter; import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UploadResultBean; +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; @@ -25,7 +28,9 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; @@ -37,20 +42,20 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import butterknife.BindView; import butterknife.OnClick; public class FivePackageUploadActivity extends BaseActivity implements View.OnClickListener - , IUploadFileView { + , IUploadFileView, ICaseSubmitCaseView { private static final String TAG = "PackageUploadActivity"; @BindView(R.id.leftBackView) ImageView leftBackView; + @BindView(R.id.shopView) + TextView shopView; @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) @@ -69,9 +74,13 @@ QMUIRoundButton submitButton; private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; private ImageRecycleViewAdapter imageAdapter; private QMUITipDialog submitDialog; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + private Gson gson; @Override public int initLayoutView() { @@ -92,7 +101,9 @@ @Override public void initData() { + gson = new Gson(); uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("提交中,请稍后") @@ -113,8 +124,9 @@ public void onClick(View v) { switch (v.getId()) { case R.id.shopLayout: - ToastHelper.showToast("正在完善中", ToastHelper.ERROR); -// startActivityForResult(new Intent(this, ArcGISMapActivity.class), Constant.REQUEST_MAP_CODE); + 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) @@ -138,7 +150,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase(); break; } } @@ -187,7 +199,18 @@ } double longitude = data.getDoubleExtra("longitude", 0); double latitude = data.getDoubleExtra("latitude", 0); - updateLocation(longitude, latitude); + 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; @@ -195,22 +218,29 @@ } } - private void updateLocation(double longitude, double latitude) { - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - Geocoder geoCoder = new Geocoder(this, Locale.CHINESE); - StringBuffer buffer = new StringBuffer(); - try { - Address address = geoCoder.getFromLocation(latitude, longitude, 1).get(0); - buffer.append(address.getSubLocality()) - .append(address.getSubAdminArea()) - .append(address.getThoroughfare()) - .append(address.getSubThoroughfare()); - } catch (IOException e) { - buffer.append("解析详细地址失败"); - e.printStackTrace(); + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); } - communityView.setText(buffer); + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + 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), + communityView.getText().toString(), gridId, description, fieldIntro, + gson.toJson(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); } @Override @@ -224,6 +254,16 @@ } @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override public void obtainUploadAudioResult(UploadResultBean resultBean) { } @@ -237,28 +277,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index d53b46e..e1ec347 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.ShopFeatureBean; import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -64,7 +65,7 @@ QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer; + private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; private WeakReferenceHandler weakReferenceHandler; private Point clickPoint; private Gson gson; @@ -93,7 +94,7 @@ gson = new Gson(); weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(2400);//数字越大,放大比例越小 + mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小 ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); @@ -113,18 +114,28 @@ * * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ - if (caseType.equals("事件")) { - //单元网格 (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(unitLayer, communityLayer)); - } else { - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); + 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"); + 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"); + packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + packageLayer = new FeatureLayer(packageFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); + break; } mapView.setMap(arcGISMap); } @@ -160,49 +171,75 @@ } } }); - if (caseType.equals("事件")) { - //事件只需要获得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(); + 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(); - } - } - }); - } else { - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { - @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + Message message = weakReferenceHandler.obtainMessage(); + message.what = 202104261; + message.obj = feature.getAttributes(); + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Message message = weakReferenceHandler.obtainMessage(); + message.what = 20210427; + message.obj = shopList; + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + break; } return true; } @@ -225,30 +262,90 @@ 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); - String gridId = unitFeatureBean.getBGID(); -// Log.d(TAG, "UnitFeatureBean: " + gridId); - arcGISMapActivity.showDialog(gridId, communityName); + + arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName); break; case 202104262: Type gridType = new TypeToken>() { }.getType(); List beans = gson.fromJson(gson.toJson(msg.obj), gridType); -// Log.d(TAG, "GridFeatureBean: " + gson.toJson(beans)); - arcGISMapActivity.showObjListDialog(beans, communityName); + + //设置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); + } + }); + } + 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("提示") + .setMessage("已选择商户:" + shopName + "\r\n手机号:" + phoneNumber + "\r\n确认提交?") + .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("shopName", shopName); + intent.putExtra("phoneNumber", phoneNumber); + intent.putExtra("shopKeeper", shopKeeper); + intent.putExtra("shopID", shopID); + 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(); + } + private void showDialog(String gridId, String communityName) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该时间所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -268,18 +365,7 @@ } private void showObjListDialog(List beans, String communityName) { - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(this); - 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(); - showDialog(featureBean.getBGID(), communityName); - } - }); - } - menuDialogBuilder.create().show(); + } /** 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 965cb26..26aed87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -124,7 +124,7 @@ private UploadImagePresenterImpl uploadImagePresenter; private List imageList = new ArrayList<>();//服务器返回的拍照数据集 private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//服务器返回的数据集 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; 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 59731cd..8f67b87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -36,6 +36,7 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; @@ -97,7 +98,8 @@ private QMUITipDialog submitDialog; private Gson gson; private UploadImagePresenterImpl uploadImagePresenter; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; @@ -373,28 +375,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } @@ -426,7 +428,6 @@ ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } - //361029001003141 caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, "1", "1", eorc, typeCode, typeDetailCode, gridId.substring(0, 6), diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java index 9026180..1606086 100644 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java @@ -2,11 +2,11 @@ import android.content.DialogInterface; import android.content.Intent; -import android.location.Address; -import android.location.Geocoder; +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.core.content.ContextCompat; @@ -16,8 +16,11 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageRecycleViewAdapter; import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UploadResultBean; +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; @@ -25,7 +28,9 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; @@ -37,20 +42,20 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import butterknife.BindView; import butterknife.OnClick; public class FivePackageUploadActivity extends BaseActivity implements View.OnClickListener - , IUploadFileView { + , IUploadFileView, ICaseSubmitCaseView { private static final String TAG = "PackageUploadActivity"; @BindView(R.id.leftBackView) ImageView leftBackView; + @BindView(R.id.shopView) + TextView shopView; @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) @@ -69,9 +74,13 @@ QMUIRoundButton submitButton; private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; private ImageRecycleViewAdapter imageAdapter; private QMUITipDialog submitDialog; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + private Gson gson; @Override public int initLayoutView() { @@ -92,7 +101,9 @@ @Override public void initData() { + gson = new Gson(); uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("提交中,请稍后") @@ -113,8 +124,9 @@ public void onClick(View v) { switch (v.getId()) { case R.id.shopLayout: - ToastHelper.showToast("正在完善中", ToastHelper.ERROR); -// startActivityForResult(new Intent(this, ArcGISMapActivity.class), Constant.REQUEST_MAP_CODE); + 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) @@ -138,7 +150,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase(); break; } } @@ -187,7 +199,18 @@ } double longitude = data.getDoubleExtra("longitude", 0); double latitude = data.getDoubleExtra("latitude", 0); - updateLocation(longitude, latitude); + 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; @@ -195,22 +218,29 @@ } } - private void updateLocation(double longitude, double latitude) { - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - Geocoder geoCoder = new Geocoder(this, Locale.CHINESE); - StringBuffer buffer = new StringBuffer(); - try { - Address address = geoCoder.getFromLocation(latitude, longitude, 1).get(0); - buffer.append(address.getSubLocality()) - .append(address.getSubAdminArea()) - .append(address.getThoroughfare()) - .append(address.getSubThoroughfare()); - } catch (IOException e) { - buffer.append("解析详细地址失败"); - e.printStackTrace(); + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); } - communityView.setText(buffer); + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + 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), + communityView.getText().toString(), gridId, description, fieldIntro, + gson.toJson(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); } @Override @@ -224,6 +254,16 @@ } @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override public void obtainUploadAudioResult(UploadResultBean resultBean) { } @@ -237,28 +277,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } 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 f505301..569cba4 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 @@ -247,4 +247,29 @@ @POST("/fileUpload") Observable uploadVideo(@Header("token") String token, @Part MultipartBody.Part file); + + /** + * 五包上报 + */ + @FormUrlEncoded + @POST("/case/add") + Observable submitShopCase(@Header("token") String token, + @Field("isNeedVerify") String isNeedVerify, + @Field("isNeedRevisit") String isNeedRevisit, + @Field("longitude") String longitude, + @Field("latitude") String latitude, + @Field("source") String source, + @Field("caseLevel") String caseLevel, + @Field("areaCode") String areaCode, + @Field("streetCode") String streetCode, + @Field("communityCode") String communityCode, + @Field("gridId") String gridId, + @Field("description") String description, + @Field("fieldintro") String fieldintro, + @Field("fileIdVerify") String fileIdVerify, + @Field("bzhours") int bzhours, + @Field("bzminis") int bzminis, + @Field("shopId") String shopId, + @Field("shopkeeperName") String shopkeeperName, + @Field("shopPhone") String shopPhone); } diff --git a/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java new file mode 100644 index 0000000..8acd96c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ShopFeatureBean.java @@ -0,0 +1,294 @@ +package com.casic.dcms.bean; + +public class ShopFeatureBean { + + /** + * Area : + * BGID : 361029001003141 + * CommuID : 361029001003 + * CommuName : 芙蓉社区 + * DataSource : 实测 + * DeptName : 城管局 + * DutyName : 顺驰车行 + * DutyRange : + * FID : 967 + * Notes : 邓志健 + * ObjID : 361029090100900 + * ObjState : 完好 + * ORDate : {"year":2017,"month":11,"dayOfMonth":22,"hourOfDay":0,"minute":0,"second":0} + * Picture : \DX\09\0901\DX_1213B_00016.jpg + * Position_ : 东红路8号 东北方向约20米 + * Shape_Area : 93.754540585 + * Shape_Leng : 43.7830569834 + * StreetID : 361029001 + * StreetName : 孝岗镇 + * Tel : 18179411285 + * UseState : 在用 + * Usingway : 租用 + */ + + 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; + + public String getArea() { + return Area; + } + + public void setArea(String Area) { + this.Area = Area; + } + + public String getBGID() { + return BGID; + } + + public void setBGID(String BGID) { + this.BGID = BGID; + } + + public String getCommuID() { + return CommuID; + } + + 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; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java new file mode 100644 index 0000000..74b5bb8 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IShopCaseSubmitModel.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IShopCaseSubmitModel { + Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java new file mode 100644 index 0000000..f2687d6 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ShopCaseSubmitModelImpl.java @@ -0,0 +1,64 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 14:13 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitModelImpl implements IShopCaseSubmitModel { + + private OnShopSubmitListener listener; + + public ShopCaseSubmitModelImpl(OnShopSubmitListener shopSubmitListener) { + this.listener = shopSubmitListener; + } + + /** + * 数据回调接口 + */ + public interface OnShopSubmitListener { + void onSuccess(SubmitResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Observable observable = RetrofitServiceManager.getSubmitShopCaseResult(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(SubmitResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java new file mode 100644 index 0000000..89ebe93 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IShopCaseSubmitPresenter.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.presenter; + +public interface IShopCaseSubmitPresenter { + void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java new file mode 100644 index 0000000..756d4fb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ShopCaseSubmitPresenterImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.SubmitResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ShopCaseSubmitModelImpl; +import com.casic.dcms.mvp.view.ICaseSubmitCaseView; + +/** + * @Author: Pengxh + * @Time: 2021/4/12 13:29 + * @Email: 290677893@qq.com + **/ +public class ShopCaseSubmitPresenterImpl extends BasePresenter implements IShopCaseSubmitPresenter, ShopCaseSubmitModelImpl.OnShopSubmitListener { + + private ICaseSubmitCaseView view; + private ShopCaseSubmitModelImpl actionModel; + + public ShopCaseSubmitPresenterImpl(ICaseSubmitCaseView caseTypeView) { + this.view = caseTypeView; + actionModel = new ShopCaseSubmitModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone)); + } + + @Override + public void onSuccess(SubmitResultBean resultBean) { + view.hideProgress(); + view.obtainSubmitResult(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java index d53b46e..e1ec347 100644 --- a/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ArcGISMapActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.GridFeatureBean; +import com.casic.dcms.bean.ShopFeatureBean; import com.casic.dcms.bean.UnitFeatureBean; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.LocationHelper; @@ -64,7 +65,7 @@ QMUITopBarLayout gisTopLayout; @BindView(R.id.mapView) MapView mapView; - private FeatureLayer unitLayer, communityLayer, pointLayer; + private FeatureLayer unitLayer, communityLayer, pointLayer, packageLayer; private WeakReferenceHandler weakReferenceHandler; private Point clickPoint; private Gson gson; @@ -93,7 +94,7 @@ gson = new Gson(); weakReferenceHandler = new WeakReferenceHandler(this); mapView.setAttributionTextVisible(false);//去掉左下角属性标识 - mapView.setViewpointScaleAsync(2400);//数字越大,放大比例越小 + mapView.setViewpointScaleAsync(500);//数字越大,放大比例越小 ArcGISMap arcGISMap = new ArcGISMap(BasemapStyle.ARCGIS_STREETS); arcGISMap.setMinScale(36000); @@ -113,18 +114,28 @@ * * 如果是事件,加载单元网格图层,如果是部件,加载部件图层 * */ - if (caseType.equals("事件")) { - //单元网格 (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(unitLayer, communityLayer)); - } else { - //部件点图层 (ID: 0) - ServiceFeatureTable pointFeatureTable = new ServiceFeatureTable(Constant.COMPONENT_SERVICE_URL + "/0"); - pointFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); - pointLayer = new FeatureLayer(pointFeatureTable); - arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, pointLayer)); + 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"); + 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"); + packageFeatureTable.setFeatureRequestMode(ServiceFeatureTable.FeatureRequestMode.ON_INTERACTION_NO_CACHE); + packageLayer = new FeatureLayer(packageFeatureTable); + arcGISMap.getOperationalLayers().addAll(Arrays.asList(communityLayer, packageLayer)); + break; } mapView.setMap(arcGISMap); } @@ -160,49 +171,75 @@ } } }); - if (caseType.equals("事件")) { - //事件只需要获得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(); + 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(); - } - } - }); - } else { - //取点 - List> pointList = new ArrayList<>(); - ListenableFuture pointFuture = mapView.identifyLayerAsync(pointLayer, screenPoint, 15, false, -1); - pointFuture.addDoneListener(new Runnable() { - @Override - public void run() { - try { - IdentifyLayerResult identifyLayerResult = pointFuture.get(); - List elements = identifyLayerResult.getElements(); - for (GeoElement element : elements) { - Map attributes = element.getAttributes(); - pointList.add(attributes); + Message message = weakReferenceHandler.obtainMessage(); + message.what = 202104261; + message.obj = feature.getAttributes(); + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); } - Message message = weakReferenceHandler.obtainMessage(); - message.what = 202104262; - message.obj = pointList; - 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = pointFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + pointList.add(attributes); + } + 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() { + @Override + public void run() { + try { + IdentifyLayerResult identifyLayerResult = packageFuture.get(); + List elements = identifyLayerResult.getElements(); + for (GeoElement element : elements) { + Map attributes = element.getAttributes(); + shopList.add(attributes); + } + Message message = weakReferenceHandler.obtainMessage(); + message.what = 20210427; + message.obj = shopList; + weakReferenceHandler.sendMessage(message); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + break; } return true; } @@ -225,30 +262,90 @@ 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); - String gridId = unitFeatureBean.getBGID(); -// Log.d(TAG, "UnitFeatureBean: " + gridId); - arcGISMapActivity.showDialog(gridId, communityName); + + arcGISMapActivity.showDialog(unitFeatureBean.getBGID(), communityName); break; case 202104262: Type gridType = new TypeToken>() { }.getType(); List beans = gson.fromJson(gson.toJson(msg.obj), gridType); -// Log.d(TAG, "GridFeatureBean: " + gson.toJson(beans)); - arcGISMapActivity.showObjListDialog(beans, communityName); + + //设置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); + } + }); + } + 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("提示") + .setMessage("已选择商户:" + shopName + "\r\n手机号:" + phoneNumber + "\r\n确认提交?") + .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("shopName", shopName); + intent.putExtra("phoneNumber", phoneNumber); + intent.putExtra("shopKeeper", shopKeeper); + intent.putExtra("shopID", shopID); + 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(); + } + private void showDialog(String gridId, String communityName) { new QMUIDialog.MessageDialogBuilder(this) .setTitle("提示") - .setMessage("该时间所在地点网格为[" + gridId + "]确认提交?") + .setMessage("该事件所在地点网格为[" + gridId + "]确认提交?") .setCanceledOnTouchOutside(false) .addAction("取消", (dialog, index) -> dialog.dismiss()) .addAction("确定", new QMUIDialogAction.ActionListener() { @@ -268,18 +365,7 @@ } private void showObjListDialog(List beans, String communityName) { - QMUIDialog.MenuDialogBuilder menuDialogBuilder = new QMUIDialog.MenuDialogBuilder(this); - 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(); - showDialog(featureBean.getBGID(), communityName); - } - }); - } - menuDialogBuilder.create().show(); + } /** 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 965cb26..26aed87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -124,7 +124,7 @@ private UploadImagePresenterImpl uploadImagePresenter; private List imageList = new ArrayList<>();//服务器返回的拍照数据集 private List realPaths = new ArrayList<>();//真是图片路径 - private List mediaList = new ArrayList<>();//服务器返回的数据集 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; 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 59731cd..8f67b87 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -36,6 +36,7 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; @@ -97,7 +98,8 @@ private QMUITipDialog submitDialog; private Gson gson; private UploadImagePresenterImpl uploadImagePresenter; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 private String eorc; private String typeCode; private String typeDetailCode; @@ -373,28 +375,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } @@ -426,7 +428,6 @@ ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } - //361029001003141 caseSubmitPresenter.onReadyRetrofitRequest("0", "0", longitude, latitude, "1", "1", eorc, typeCode, typeDetailCode, gridId.substring(0, 6), diff --git a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java index 9026180..1606086 100644 --- a/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/FivePackageUploadActivity.java @@ -2,11 +2,11 @@ import android.content.DialogInterface; import android.content.Intent; -import android.location.Address; -import android.location.Geocoder; +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.core.content.ContextCompat; @@ -16,8 +16,11 @@ import com.casic.dcms.R; import com.casic.dcms.adapter.ImageRecycleViewAdapter; import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.SubmitResultBean; import com.casic.dcms.bean.UploadResultBean; +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; @@ -25,7 +28,9 @@ import com.casic.dcms.utils.ItemDecorationSpace; import com.casic.dcms.utils.SaveKeyValues; import com.casic.dcms.utils.StatusBarColorUtil; +import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; @@ -37,20 +42,20 @@ import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import butterknife.BindView; import butterknife.OnClick; public class FivePackageUploadActivity extends BaseActivity implements View.OnClickListener - , IUploadFileView { + , IUploadFileView, ICaseSubmitCaseView { private static final String TAG = "PackageUploadActivity"; @BindView(R.id.leftBackView) ImageView leftBackView; + @BindView(R.id.shopView) + TextView shopView; @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) @@ -69,9 +74,13 @@ QMUIRoundButton submitButton; private UploadImagePresenterImpl uploadImagePresenter; + private ShopCaseSubmitPresenterImpl shopCaseSubmitPresenter; private ImageRecycleViewAdapter imageAdapter; private QMUITipDialog submitDialog; - private List mediaList = new ArrayList<>();//服务器返回的拍照数据集 + private List realPaths = new ArrayList<>();//真是图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + private String gridId, shopKeeper, phoneNumber, shopID; + private Gson gson; @Override public int initLayoutView() { @@ -92,7 +101,9 @@ @Override public void initData() { + gson = new Gson(); uploadImagePresenter = new UploadImagePresenterImpl(this); + shopCaseSubmitPresenter = new ShopCaseSubmitPresenterImpl(this); submitDialog = new QMUITipDialog.Builder(this) .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("提交中,请稍后") @@ -113,8 +124,9 @@ public void onClick(View v) { switch (v.getId()) { case R.id.shopLayout: - ToastHelper.showToast("正在完善中", ToastHelper.ERROR); -// startActivityForResult(new Intent(this, ArcGISMapActivity.class), Constant.REQUEST_MAP_CODE); + 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) @@ -138,7 +150,7 @@ .create().show(); break; case R.id.submitButton: - + submitCase(); break; } } @@ -187,7 +199,18 @@ } double longitude = data.getDoubleExtra("longitude", 0); double latitude = data.getDoubleExtra("latitude", 0); - updateLocation(longitude, latitude); + 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; @@ -195,22 +218,29 @@ } } - private void updateLocation(double longitude, double latitude) { - longitudeView.setText(String.valueOf(longitude)); - latitudeView.setText(String.valueOf(latitude)); - Geocoder geoCoder = new Geocoder(this, Locale.CHINESE); - StringBuffer buffer = new StringBuffer(); - try { - Address address = geoCoder.getFromLocation(latitude, longitude, 1).get(0); - buffer.append(address.getSubLocality()) - .append(address.getSubAdminArea()) - .append(address.getThoroughfare()) - .append(address.getSubThoroughfare()); - } catch (IOException e) { - buffer.append("解析详细地址失败"); - e.printStackTrace(); + /** + * 案卷提交 + */ + private void submitCase() { + String longitude = longitudeView.getText().toString(); + String latitude = latitudeView.getText().toString(); + + String fieldIntro = caseLocationView.getText().toString(); + if (TextUtils.isEmpty(fieldIntro)) { + ToastHelper.showToast("案卷地点还未填写", ToastHelper.WARING); } - communityView.setText(buffer); + String description = caseDetailEditView.getText().toString(); + if (TextUtils.isEmpty(description)) { + ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); + } + 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), + communityView.getText().toString(), gridId, description, fieldIntro, + gson.toJson(mediaList), 0, 0, shopID, shopKeeper, phoneNumber); } @Override @@ -224,6 +254,16 @@ } @Override + public void obtainSubmitResult(SubmitResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("提交失败,请重试", ToastHelper.ERROR); + } + } + + @Override public void obtainUploadAudioResult(UploadResultBean resultBean) { } @@ -237,28 +277,28 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String data = resultBean.getData().replace("\\", "/"); - String url = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String url = resultBean.getData(); mediaList.add(url); - if (mediaList.size() == 2) { + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { addImageView.setVisibility(View.GONE); } - imageAdapter.setMediaList(mediaList); + imageAdapter.setMediaList(realPaths); //九宫格点击事件 imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { //查看大图 - showBigImage(mediaList.get(position)); + showBigImage(realPaths.get(position)); } }); //删除按钮点击事件 imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { @Override public void onClick(int position) { - mediaList.remove(position); - imageAdapter.setMediaList(mediaList); - if (mediaList.size() != 2) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { addImageView.setVisibility(View.VISIBLE); } } 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 f505301..569cba4 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 @@ -247,4 +247,29 @@ @POST("/fileUpload") Observable uploadVideo(@Header("token") String token, @Part MultipartBody.Part file); + + /** + * 五包上报 + */ + @FormUrlEncoded + @POST("/case/add") + Observable submitShopCase(@Header("token") String token, + @Field("isNeedVerify") String isNeedVerify, + @Field("isNeedRevisit") String isNeedRevisit, + @Field("longitude") String longitude, + @Field("latitude") String latitude, + @Field("source") String source, + @Field("caseLevel") String caseLevel, + @Field("areaCode") String areaCode, + @Field("streetCode") String streetCode, + @Field("communityCode") String communityCode, + @Field("gridId") String gridId, + @Field("description") String description, + @Field("fieldintro") String fieldintro, + @Field("fileIdVerify") String fileIdVerify, + @Field("bzhours") int bzhours, + @Field("bzminis") int bzminis, + @Field("shopId") String shopId, + @Field("shopkeeperName") String shopkeeperName, + @Field("shopPhone") String shopPhone); } 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 01ad905..674dece 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 @@ -308,4 +308,19 @@ MultipartBody.Part imagePart = MultipartBody.Part.createFormData("file", video.getName(), requestBody); return service.uploadVideo(TokenHelper.getToken(), imagePart); } + + /** + * 五包上报 + */ + public static Observable getSubmitShopCaseResult(String isNeedVerify, String isNeedRevisit, String longitude, String latitude, + String source, String caseLevel, String areaCode, String streetCode, + String communityCode, String gridId, String description, String fieldintro, + String fileIdVerify, int bzhours, int bzminis, String shopId, + String shopkeeperName, String shopPhone) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.submitShopCase(TokenHelper.getToken(), isNeedVerify, isNeedRevisit, longitude, latitude, + source, caseLevel, areaCode, streetCode, communityCode, gridId, description, fieldintro, fileIdVerify, + bzhours, bzminis, shopId, shopkeeperName, shopPhone); + } }