部门端事件核查

This commit is contained in:
高健 2021-10-25 14:11:58 +08:00
parent 0672ae422a
commit 232ab402cf
18 changed files with 1430 additions and 64 deletions

View File

@ -64,34 +64,34 @@ public class PathConfig {
//=========================字典ID===================================
public static final String DIC_RELATION = "4c21d91a-d5e1-4cfc-a18a-d63272763cdb";//与户主关系
// public static final String DIC_CARD_TYPE = "76c5044f-805a-4313-b1e8-79e966b97c0d";//证件类型
public static final String DIC_CARD_TYPE = "35c6e331-9dd4-425c-be0c-ce570a0a768d";//TODO 证件类型
public static final String DIC_CARD_TYPE = "76c5044f-805a-4313-b1e8-79e966b97c0d";//证件类型
// public static final String DIC_CARD_TYPE = "35c6e331-9dd4-425c-be0c-ce570a0a768d";//TODO 证件类型
public static final String DIC_HOUSE_TYPE = "bd3ceeb7-a523-4532-901d-5ab4046ebae3";//住所类型
public static final String DIC_HEALTH = "6152d370-a809-4e32-8af9-e3c5f606e7f1";//健康状况
public static final String DIC_REAR_TYPE = "40660752-9d0f-47fc-834f-5eb8e2668209";//留守人员类型
public static final String DIC_MIGRANT_TYPE = "f05bddd7-4102-4427-ade3-b06728d049a7";//流入原因
public static final String DIC_CASE_TYPE = "e45bbd02-35b3-4f5c-bc2e-ffd924e87abb";//案件类别
// public static final String DIC_GENDER = "4ef46940-76ab-4758-b5f0-0cbc93ffc660";//性别l
public static final String DIC_GENDER = "52038eeb-9d55-4eaa-b3e3-c70a33bdc135";// TODO 性别 任鹏程
public static final String DIC_GENDER = "4ef46940-76ab-4758-b5f0-0cbc93ffc660";//性别l
// public static final String DIC_GENDER = "52038eeb-9d55-4eaa-b3e3-c70a33bdc135";// TODO 性别 任鹏程
public static final String DIC_AREA_TYPE = "ba1d92aa-552c-4a45-b376-6ee7e5d33ab9";// TODO 涉及区域类型 任鹏程
public static final String DIC_EXTRUDE = "b356002b-7f51-4dd6-9f22-d517ea8a7671";//TODO 治安突出问题
public static final String DIC_ASSESS = "758de083-4a46-408e-9d37-7c5ab03d956a";//TODO 评估效果
// public static final String DIC_NATIONALITY = "1c9098f8-155a-453e-8766-51d8df1556b3";//国籍
public static final String DIC_NATIONALITY = "df4920dd-18eb-4b9a-b334-62c698271f95";//TODO 国籍
// public static final String DIC_FAITH = "73f3e1fd-02c0-4238-95fe-9e944f2ba6c7";//宗教信仰
public static final String DIC_FAITH = "bf86a742-0fdf-47f6-8643-4f355a9f59b0";//TODO 宗教信仰
// public static final String DIC_WORK_TYPE = "5867642c-2b79-4bea-adc9-477a5b784159";//职业类别
public static final String DIC_WORK_TYPE = "164ee162-9891-4463-bd15-152209dabef7";//TODO 职业类别
// public static final String DIC_NATION = "a981579c-572b-4fd1-8e76-5d17df97f6a4";//名族
public static final String DIC_NATION = "a6a9a1b1-651f-42a8-84db-8095041d8a5a";//TODO 名族
// public static final String DIC_MARRIAGE = "91bdd01b-e9d2-4a2b-98b5-45e25d3cd8ae";//婚姻状况
public static final String DIC_MARRIAGE = "b96ad71f-a105-428a-95c0-fae6cbc8d976";//TODO 婚姻状况
// public static final String DIC_POLITICS = "b2c96de0-3df8-41db-99b1-bc4e24ac6c24";//政治面貌
public static final String DIC_POLITICS = "616350d7-03c0-4b48-861c-ca4d7ed8555f";//TODO 政治面貌
// public static final String DIC_EDU = "d6b9f026-6ea9-456a-b48b-0c18d502523b";//学历
public static final String DIC_NATIONALITY = "1c9098f8-155a-453e-8766-51d8df1556b3";//国籍
// public static final String DIC_NATIONALITY = "df4920dd-18eb-4b9a-b334-62c698271f95";//TODO 国籍
public static final String DIC_FAITH = "73f3e1fd-02c0-4238-95fe-9e944f2ba6c7";//宗教信仰
// public static final String DIC_FAITH = "bf86a742-0fdf-47f6-8643-4f355a9f59b0";//TODO 宗教信仰
public static final String DIC_WORK_TYPE = "5867642c-2b79-4bea-adc9-477a5b784159";//职业类别
// public static final String DIC_WORK_TYPE = "164ee162-9891-4463-bd15-152209dabef7";//TODO 职业类别
public static final String DIC_NATION = "a981579c-572b-4fd1-8e76-5d17df97f6a4";//名族
// public static final String DIC_NATION = "a6a9a1b1-651f-42a8-84db-8095041d8a5a";//TODO 名族
public static final String DIC_MARRIAGE = "91bdd01b-e9d2-4a2b-98b5-45e25d3cd8ae";//婚姻状况
// public static final String DIC_MARRIAGE = "b96ad71f-a105-428a-95c0-fae6cbc8d976";//TODO 婚姻状况
public static final String DIC_POLITICS = "b2c96de0-3df8-41db-99b1-bc4e24ac6c24";//政治面貌
// public static final String DIC_POLITICS = "616350d7-03c0-4b48-861c-ca4d7ed8555f";//TODO 政治面貌
public static final String DIC_EDU = "c93682ac-a1a0-4acc-b0bc-828fb86e4b00";//TODO 学历
public static final String DIC_EDU = "d6b9f026-6ea9-456a-b48b-0c18d502523b";//学历
// public static final String DIC_EDU = "c93682ac-a1a0-4acc-b0bc-828fb86e4b00";//TODO 学历
public static final String DIC_TREAT = "ed085b3e-25c1-43fe-9d42-77510ee89d58";//治疗情况
public static final String DIC_DIAGNOSE = "c355af47-ee1d-415c-b9d3-66befa6d726b";//目前诊断类型
public static final String DIC_LEVEL = "01626087-e8da-4006-9662-20771d3682ce";//目前评估登记
@ -150,7 +150,7 @@ public class PathConfig {
public static final String USER_TYPE_N = "bc405346-8714-4ded-89ac-9cc4d755f66a";
public static final String USER_TYPE_X = "25affe67-134c-4a32-ba41-64b0cfedc782";
// public static final String APP_VERSION_ID = "f311fd32-cd36-45a1-9652-599d5f2c2d4f";/*正式App下载码*/
public static final String APP_VERSION_ID = "4f75940c-930f-4576-ae0b-b8f699aa5bdc";/*测试App下载码*/
public static final String APP_VERSION_ID = "444a0289-65fc-4cbb-9972-c9569c24f42b";/*测试App下载码*/
public static final String NEWS_ID = "f497904b-7727-4832-891c-604c36ae4167";//文化动态ID
public static final String NEWS_SHOW_ID = "f1d5d313-f728-4dda-9843-1116d97e17b0";//展览展示ID
@ -474,4 +474,6 @@ public class PathConfig {
public static final String PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_LIST_ACTIVITY = "/modulesupervision/activity/incidentDeptAcceptList";//事件受理
public static final String PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_DETAIL_ACTIVITY = "/modulesupervision/activity/incidentDeptAcceptDetail";//事件受理详情
public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_LIST = "/modulesupervision/activity/incidentDeptList";//事件核查
public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_DETAIL = "/modulesupervision/activity/incidentDeptListDetail";//事件核查详情
}

View File

@ -10,15 +10,15 @@ import com.tenlionsoft.baselib.constant.PathConfig;
public class BaseUrlApi {
// public static final String IP = "http://192.168.0.109:8080/";/* 正式IP */
public static final String IP = "http://192.168.0.120:8080/";/* 正式IP */
public static final String IP = "http://192.168.0.109:8080/";/* 正式IP */
public static final String SYS_USERCENTER = "usercenter/";
public static final String SYS_POPULATION = "population/";/*人口系统*/
public static final String SYS_CASE = "case/";/*事件部件*/
public static final String SYS_HOUSE = "systemhouse/";/*房屋系统*/
public static final String SYS_SECURITY = "systembase/";/*社会治安*/
public static final String TEMP_IP = "http://192.168.0.120:8080/";
public static final String TEMP_IP = "http://192.168.0.109:8080/";
public static final String BASE_MAIN_IP = IP + SYS_CASE;
public static final String BASE_MAIN_IP = IP + SYS_POPULATION;
public static final String BASE_CASE_IP = IP + SYS_CASE;
public static final String BASE_SECURITY_IP = IP + SYS_SECURITY;
public static final String BASE_HOUSE_IP = IP + SYS_HOUSE;

View File

@ -40,15 +40,15 @@ public class IncidentHandleListAdapter extends BaseRecyclerAdapter<IncidentHandl
IncidentHandleListBean.RowsBean bean = mData.get(i);
holder.mTvSummary.setText(bean.getDispatchSummary());
holder.mTvDept.setText("派遣部门:" + bean.getDispatchUserDeptName());
holder.mTvTime.setText("派遣处理时间:" + bean.getDispatchHandleTime());
holder.mTvState.setText(bean.getDispatchState() + "");
holder.mTvTime.setText("处理截止时间:" + bean.getDispatchHandleTime());
holder.mTvState.setText(bean.getDispathcStateText());
if (bean.getIsAllowDelay() == 1) {
//申请了延期
holder.mTvDelayTime.setVisibility(View.VISIBLE);
holder.mTvDelayTime.setText("延期到期时间:" + bean.getDelayExpireTime());
} else {
//没有申请延期
holder.mTvDelayTime.setVisibility(View.VISIBLE);
holder.mTvDelayTime.setVisibility(View.GONE);
}
}
}

View File

@ -14,9 +14,9 @@ public class DispatchDetailBean {
private String delayExpireTime;
private String dispatchHandleTime;
private String dispatchId;
private int dispatchState;
private String dispatchState;
private String dispatchSummary;
private int dispatchType;
private String dispatchType;
private String dispatchUserDeptId;
private String dispatchUserDeptName;
private String dispatchUserId;
@ -26,6 +26,16 @@ public class DispatchDetailBean {
private int isAllowDelay;
private String reportId;
private String taskId;
private String dispathcStateText;
public String getDispathcStateText() {
return dispathcStateText;
}
public void setDispathcStateText(String dispathcStateText) {
this.dispathcStateText = dispathcStateText;
}
public String getBusinessId() {
return businessId;
@ -75,11 +85,11 @@ public class DispatchDetailBean {
this.dispatchId = dispatchId;
}
public int getDispatchState() {
public String getDispatchState() {
return dispatchState;
}
public void setDispatchState(int dispatchState) {
public void setDispatchState(String dispatchState) {
this.dispatchState = dispatchState;
}
@ -91,11 +101,11 @@ public class DispatchDetailBean {
this.dispatchSummary = dispatchSummary;
}
public int getDispatchType() {
public String getDispatchType() {
return dispatchType;
}
public void setDispatchType(int dispatchType) {
public void setDispatchType(String dispatchType) {
this.dispatchType = dispatchType;
}

View File

@ -0,0 +1,83 @@
package com.tengshisoft.commonmodule.beans;
/**
* 作者: adam
* 日期: 2021/10/25 - 10:40 上午
* 邮箱: itgaojian@163.com
* 描述:
*/
public class IncidentHandleDetailBean {
private String creator;
private String creatorName;
private String dispatchId;
private String gmtCreate;
private String handleId;
private String handlePhotos;
private String handleSummary;
private String reportId;
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public String getDispatchId() {
return dispatchId;
}
public void setDispatchId(String dispatchId) {
this.dispatchId = dispatchId;
}
public String getGmtCreate() {
return gmtCreate;
}
public void setGmtCreate(String gmtCreate) {
this.gmtCreate = gmtCreate;
}
public String getHandleId() {
return handleId;
}
public void setHandleId(String handleId) {
this.handleId = handleId;
}
public String getHandlePhotos() {
return handlePhotos;
}
public void setHandlePhotos(String handlePhotos) {
this.handlePhotos = handlePhotos;
}
public String getHandleSummary() {
return handleSummary;
}
public void setHandleSummary(String handleSummary) {
this.handleSummary = handleSummary;
}
public String getReportId() {
return reportId;
}
public void setReportId(String reportId) {
this.reportId = reportId;
}
}

View File

@ -45,9 +45,9 @@ public class IncidentHandleListBean {
private String delayExpireTime;
private String dispatchHandleTime;
private String dispatchId;
private int dispatchState;
private String dispatchState;
private String dispatchSummary;
private int dispatchType;
private String dispatchType;
private String dispatchUserDeptId;
private String dispatchUserDeptName;
private String dispatchUserId;
@ -57,6 +57,25 @@ public class IncidentHandleListBean {
private int isAllowDelay;
private String reportId;
private String taskId;
private String dispathcStateText;
private String handleId;
public String getHandleId() {
return handleId;
}
public void setHandleId(String handleId) {
this.handleId = handleId;
}
public String getDispathcStateText() {
return dispathcStateText;
}
public void setDispathcStateText(String dispathcStateText) {
this.dispathcStateText = dispathcStateText;
}
public String getBusinessId() {
return businessId;
@ -106,11 +125,11 @@ public class IncidentHandleListBean {
this.dispatchId = dispatchId;
}
public int getDispatchState() {
public String getDispatchState() {
return dispatchState;
}
public void setDispatchState(int dispatchState) {
public void setDispatchState(String dispatchState) {
this.dispatchState = dispatchState;
}
@ -122,11 +141,11 @@ public class IncidentHandleListBean {
this.dispatchSummary = dispatchSummary;
}
public int getDispatchType() {
public String getDispatchType() {
return dispatchType;
}
public void setDispatchType(int dispatchType) {
public void setDispatchType(String dispatchType) {
this.dispatchType = dispatchType;
}

View File

@ -31,6 +31,7 @@ import com.tengshisoft.commonmodule.beans.HireRecordListBean;
import com.tengshisoft.commonmodule.beans.HouseDetailBean;
import com.tengshisoft.commonmodule.beans.HouseListBean;
import com.tengshisoft.commonmodule.beans.IncidentDetailBean;
import com.tengshisoft.commonmodule.beans.IncidentHandleDetailBean;
import com.tengshisoft.commonmodule.beans.IncidentHandleListBean;
import com.tengshisoft.commonmodule.beans.IncidentListBean;
import com.tengshisoft.commonmodule.beans.KeyAreaDetailBean;
@ -830,7 +831,7 @@ public interface Apis {
* 获取事件处理列表
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@GET("app/dispatch/listpage-pending")
@GET("app/taskbase/listpage-task-dh")
Observable<IncidentHandleListBean> getIncidentHandleList(@Query("keywords") String key, @Query("page") String page, @Header("token") String token);
/**
@ -851,15 +852,15 @@ public interface Apis {
* 保存处理
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@POST("app/handle/save")
Observable<SuccessBean> doSaveHandle(@Body RequestBody body, @Header("token") String token);
@POST("app/taskcompetebase/save-dispatch-handle/{dispatchId}")
Observable<SuccessBean> doSaveHandle(@Path("dispatchId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 回退事件
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/dispatch/update-rollback")
Observable<SuccessBean> doRollBack(@Body RequestBody body, @Header("token") String token);
@PUT("app/taskcompetebase/update-dispatch-handle/{dispatchId}")
Observable<SuccessBean> doRollBack(@Path("dispatchId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 获取事件处理记录
@ -868,6 +869,13 @@ public interface Apis {
@GET("app/handle/listpage-report/{reportId}")
Observable<HandleListBean> getHandleListByReportId(@Path("reportId") String id, @Query("page") String page, @Header("token") String token);
/**
* 获取事件处理详情
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@GET("app/handle/get/{handleId}")
Observable<IncidentHandleDetailBean> getHandleDetailByHandleId(@Path("handleId") String id, @Header("token") String token);
/**
* 获取事件核查列表
*/

View File

@ -3,6 +3,7 @@ package com.tengshisoft.commonmodule.nets;
import com.tengshisoft.commonmodule.adapters.IncidentAcceptListAdapter;
import com.tengshisoft.commonmodule.beans.IncidentAcceptListBean;
import com.tengshisoft.commonmodule.beans.IncidentDisDeptListBean;
import com.tengshisoft.commonmodule.beans.IncidentHandleListBean;
import com.tengshisoft.commonmodule.beans.IncidentListBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
@ -60,4 +61,24 @@ public interface DeptApis {
@POST("app/taskcompetebase/save-dispatch/{distributionUserId}")
Observable<SuccessBean> doSaveDistribution(@Path("distributionUserId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 事件核查列表
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@GET("app/taskbase/listpage-task-dhe")
Observable<IncidentHandleListBean> getIncidentCheckList(@Query("keywords") String key, @Query("page") String page, @Header("token") String token);
/**
* 事件核查通过
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/taskcompetebase/update-dispatch-he-pass/{dispatchId}")
Observable<SuccessBean> doIncidentDeptCheckPass(@Path("dispatchId") String id, @Body RequestBody body, @Header("token") String token);
/**
* 事件核查不通过
*/
@Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/taskcompetebase/update-dispatch-he-pass/{dispatchId}/{handleId}")
Observable<SuccessBean> doIncidentDeptCheckUnPass(@Path("dispatchId") String id, @Path("handleId") String hId, @Body RequestBody body, @Header("token") String token);
}

View File

@ -213,7 +213,7 @@ public class IncidentHandleActivity extends BaseActivity {
dialog.show();
RetrofitManager.getInstance()
.create(Apis.class)
.doRollBack(requestBody, UserLgUtils.getToken())
.doRollBack(mDispatchDetailBean.getDispatchId(), requestBody, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@ -278,7 +278,7 @@ public class IncidentHandleActivity extends BaseActivity {
dialog.show();
RetrofitManager.getInstance()
.create(Apis.class)
.doSaveHandle(body, UserLgUtils.getToken())
.doSaveHandle(mDispatchDetailBean.getDispatchId(), body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@ -609,7 +609,7 @@ public class IncidentHandleActivity extends BaseActivity {
*/
private void setDispatchDetailToView() {
mTvDispatchDept.setText(mDispatchDetailBean.getDispatchUserDeptName());
mTvDispatchState.setText(mDispatchDetailBean.getDispatchState() + "");
mTvDispatchState.setText(mDispatchDetailBean.getDispathcStateText());
mTvDispatchSummary.setText(mDispatchDetailBean.getDispatchSummary());
mTvDispatchUserName.setText(mDispatchDetailBean.getDispatchUserName());
mTvDispatchTime.setText(mDispatchDetailBean.getDispatchHandleTime());

View File

@ -15,9 +15,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.adapters.IncidentHandleListAdapter;
import com.tengshisoft.commonmodule.adapters.IncidentListAdapter;
import com.tengshisoft.commonmodule.beans.IncidentHandleListBean;
import com.tengshisoft.commonmodule.beans.IncidentListBean;
import com.tengshisoft.commonmodule.nets.Apis;
import com.tengshisoft.gridmodule.R;
import com.tengshisoft.gridmodule.R2;
@ -94,7 +92,7 @@ public class IncidentHandleListActivity extends BaseActivity {
mSrlContent.setOnRefreshListener(v -> doRefresh());
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
setStateView(13);
getIncidentList(mCurrentPage);
getIncidentUnHandleList(mCurrentPage);
mBtnBaseSearch.setOnClickListener(v -> doSearch());
mIvBaseClear.setOnClickListener(v -> {
mKeywords = "";
@ -110,9 +108,9 @@ public class IncidentHandleListActivity extends BaseActivity {
}
/**
* 获取片区内的部件列表
* 获取未处理列表
*/
private void getIncidentList(int currentPage) {
private void getIncidentUnHandleList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(Apis.class)
@ -190,14 +188,14 @@ public class IncidentHandleListActivity extends BaseActivity {
//加载更多
private void doLoadMore() {
getIncidentList(mCurrentPage);
getIncidentUnHandleList(mCurrentPage);
}
//刷新
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getIncidentList(1);
getIncidentUnHandleList(1);
}
/**
@ -210,7 +208,7 @@ public class IncidentHandleListActivity extends BaseActivity {
setStateView(13);
mKeywords = searchContent;
mCurrentPage = 1;
getIncidentList(mCurrentPage);
getIncidentUnHandleList(mCurrentPage);
} else {
ToastUtils.show("请输入要查询的内容");

View File

@ -227,6 +227,7 @@ public class IncidentListActivity extends BaseActivity {
private void setStateView(int state) {
switch (state) {
case 12://默认
case 15:
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
@ -246,13 +247,6 @@ public class IncidentListActivity extends BaseActivity {
mIvEmptyData.setVisibility(View.GONE);
mTvErrorHint.setVisibility(View.GONE);
break;
case 15://搜索完成没有数据
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("暂无部件数据");
break;
case 16://搜索失败
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);

View File

@ -32,7 +32,7 @@
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false"
tools:visibility="gone">
tools:visibility="visible">
<LinearLayout

View File

@ -52,12 +52,14 @@ public class SupervisionMainFragment extends BaseFragment {
LinearLayout mLlPlan;
private Unbinder mBind;
private List<FuncBean> mFuncs = new ArrayList<>();
private String[] mBtnStrs = new String[]{"事件派遣", "下派跟踪", "知识库", "统计分析", "事件受理"};
private String[] mBtnStrs = new String[]{"事件受理", "事件派遣", "事件核查", "下派跟踪", "知识库", "统计分析"};
private int[] mBtnIds = new int[]{
R.drawable.ic_case_report,
R.drawable.ic_case_record,
R.drawable.ic_case_dispose,
R.drawable.ic_work_path, R.drawable.ic_case_dispose};
R.drawable.ic_work_path,
R.drawable.ic_case_dispose,
R.drawable.ic_case_dispose};
private FunctionNumAdapter mNumAdapter;
@Override
@ -180,6 +182,11 @@ public class SupervisionMainFragment extends BaseFragment {
.build(PathConfig.PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_LIST_ACTIVITY)
.navigation();
break;
case "事件核查":
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_SUPERVISION_INCIDENT_CHECK_LIST)
.navigation();
break;
default:
break;
}

View File

@ -3,7 +3,9 @@
package="com.tengshisoft.supervisionmodule">
<application>
<activity android:name=".activitys.IncidentAcceptDeptDetailActivity"/>
<activity android:name=".activitys.IncidentCheckDetailActivity"></activity>
<activity android:name=".activitys.IncidentCheckDeptListActivity" />
<activity android:name=".activitys.IncidentAcceptDeptDetailActivity" />
<activity android:name=".activitys.IncidentAcceptDeptListActivity" />
<activity android:name=".activitys.IncidentDistributionDeptDetailActivity" />
<activity android:name=".activitys.IncidentDistributionDeptListActivity" />

View File

@ -0,0 +1,262 @@
package com.tengshisoft.supervisionmodule.activitys;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.adapters.IncidentHandleListAdapter;
import com.tengshisoft.commonmodule.beans.IncidentHandleListBean;
import com.tengshisoft.commonmodule.nets.DeptApis;
import com.tengshisoft.supervisionmodule.R;
import com.tengshisoft.supervisionmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
/**
* 作者: Adam
* 日期: 2021年10月25日10:13:31
* 邮箱: itgaojian@163.com
* 描述: 部门端---事件核查
*/
@Route(path = PathConfig.PATH_MODULE_SUPERVISION_INCIDENT_CHECK_LIST)
public class IncidentCheckDeptListActivity extends BaseActivity {
@BindView(R2.id.et_base_search_content)
EditText mEtBaseSearchContent;
@BindView(R2.id.iv_base_clear)
ImageView mIvBaseClear;
@BindView(R2.id.btn_base_search)
Button mBtnBaseSearch;
@BindView(R2.id.ll_base_search_content)
LinearLayout mLlBaseSearchContent;
@BindView(R2.id.rlv_components)
RecyclerView mRlvComponents;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.pb_loading)
ProgressBar mPbLoading;
@BindView(R2.id.iv_empty_data)
ImageView mIvEmptyData;
@BindView(R2.id.tv_error_hint)
TextView mTvErrorHint;
private Unbinder mBind;
private List<IncidentHandleListBean.RowsBean> mDatas;
private IncidentHandleListAdapter mAdapter;
private int mCurrentPage = 1;
private String mKeywords = "";
@Override
protected int setLayoutId() {
return R.layout.activity_incident_check_dept_list;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mTvBaseTitle.setText("事件核查");
mEtBaseSearchContent.setHint("请输入事件编码(分类名称)");
refreshView(STATE_LOAD_SUCCESS);
mDatas = new ArrayList<>();
mAdapter = new IncidentHandleListAdapter(mActivity, mDatas);
mRlvComponents.setLayoutManager(new LinearLayoutManager(mActivity));
mRlvComponents.setAdapter(mAdapter);
mSrlContent.setOnRefreshListener(v -> doRefresh());
mSrlContent.setOnLoadMoreListener(v -> doLoadMore());
setStateView(13);
getIncidentCheckList(mCurrentPage);
mBtnBaseSearch.setOnClickListener(v -> doSearch());
mIvBaseClear.setOnClickListener(v -> {
mKeywords = "";
mEtBaseSearchContent.setText("");
doRefresh();
});
mAdapter.addOnItemClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_SUPERVISION_INCIDENT_CHECK_DETAIL)
.withString("reportId", v.getReportId())
.withString("taskId", v.getTaskId())
.withString("handleId", v.getHandleId())
.withString("dispatchId", v.getDispatchId())
.navigation(mActivity, 12));
}
/**
* 获取待派遣的事件
*/
private void getIncidentCheckList(int currentPage) {
mCurrentPage = currentPage;
RetrofitManager.getInstance()
.create(DeptApis.class)
.getIncidentCheckList(mKeywords, mCurrentPage + "", UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<IncidentHandleListBean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull IncidentHandleListBean communityListBean) {
if (communityListBean.getRows() != null && communityListBean.getRows().size() > 0) {
++mCurrentPage;
if (currentPage == 1) {
mDatas.clear();
mDatas.addAll(communityListBean.getRows());
} else {
mDatas.addAll(communityListBean.getRows());
}
setStateView(14);
mAdapter.notifyDataSetChanged();
mSrlContent.finishRefresh();
if (mDatas.size() >= communityListBean.getTotal()) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
} else {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(false);
}
} else {
if (currentPage > 1) {
mSrlContent.finishLoadMore();
mSrlContent.setNoMoreData(true);
setStateView(14);
} else {
if (TextUtils.isEmpty(mKeywords)) {
//无数据
setStateView(15);
} else {
setStateView(15);
ToastUtils.show("未查询到相关内容");
}
}
}
}
@Override
public void onError(@NonNull Throwable e) {
mSrlContent.finishLoadMore();
mSrlContent.finishRefresh();
ExceptionHandler.handleException(e);
setStateView(16);
}
@Override
public void onComplete() {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12) {
if (resultCode == 13) {
doRefresh();
}
}
}
//加载更多
private void doLoadMore() {
getIncidentCheckList(mCurrentPage);
}
//刷新
private void doRefresh() {
mDatas.clear();
mAdapter.setData(mDatas);
getIncidentCheckList(1);
}
/**
*
*/
private void doSearch() {
String searchContent = mEtBaseSearchContent.getText().toString().trim();
if (!TextUtils.isEmpty(searchContent)) {
hideSoftKeyboard();
setStateView(13);
mKeywords = searchContent;
mCurrentPage = 1;
getIncidentCheckList(mCurrentPage);
} else {
ToastUtils.show("请输入要查询的内容");
}
}
/**
* 根据状态显示
* 12 默认
* 13 搜索中
* 14 搜索完成有数据
* 15 搜索完成没有数据
* 16 搜索失败
*
* @param state
*/
private void setStateView(int state) {
switch (state) {
case 12://默认
case 15://默认
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("暂无数据");
break;
case 13://搜索中
mPbLoading.setVisibility(View.VISIBLE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.GONE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("加载中...");
break;
case 14://搜索完成有数据
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.VISIBLE);
mIvEmptyData.setVisibility(View.GONE);
mTvErrorHint.setVisibility(View.GONE);
break;
case 16://搜索失败
mPbLoading.setVisibility(View.GONE);
mSrlContent.setVisibility(View.GONE);
mIvEmptyData.setVisibility(View.VISIBLE);
mTvErrorHint.setVisibility(View.VISIBLE);
mTvErrorHint.setText("加载失败,请稍后重试");
break;
}
}
}

View File

@ -0,0 +1,459 @@
package com.tengshisoft.supervisionmodule.activitys;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.ZoomControls;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.TextureMapView;
import com.baidu.mapapi.model.LatLng;
import com.google.gson.Gson;
import com.hjq.toast.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.beans.AcceptSaveBean;
import com.tengshisoft.commonmodule.beans.DispatchDetailBean;
import com.tengshisoft.commonmodule.beans.IncidentDetailBean;
import com.tengshisoft.commonmodule.beans.IncidentHandleDetailBean;
import com.tengshisoft.commonmodule.beans.SuccessBean;
import com.tengshisoft.commonmodule.nets.Apis;
import com.tengshisoft.commonmodule.nets.DeptApis;
import com.tengshisoft.supervisionmodule.R;
import com.tengshisoft.supervisionmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseShowPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.videorecord.MediaManager;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.SwitchCompat;
import androidx.cardview.widget.CardView;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* 作者: Adam
* 日期: 2021年10月25日10:20:20
* 邮箱: itgaojian@163.com
* 描述: 部门端---事件核查详情
*/
@Route(path = PathConfig.PATH_MODULE_SUPERVISION_INCIDENT_CHECK_DETAIL)
public class IncidentCheckDetailActivity extends BaseActivity {
@BindView(R2.id.tv_issue_base_info)
TextView mTvIssueBaseInfo;
@BindView(R2.id.tv_grid)
TextView mTvGrid;
@BindView(R2.id.tv_component)
TextView mTvComponent;
@BindView(R2.id.tv_type)
TextView mTvType;
@BindView(R2.id.sw_is_self)
SwitchCompat mSwIsSelf;
@BindView(R2.id.tv_area_5)
TextView mTvArea5;
@BindView(R2.id.tv_address)
TextView mTvAddress;
@BindView(R2.id.tmv_map)
TextureMapView mTmvMap;
@BindView(R2.id.tv_issue_detail_info)
TextView mTvIssueDetailInfo;
@BindView(R2.id.tv_content)
TextView mTvContent;
@BindView(R2.id.rlv_photos)
RecyclerView mRlvPhotos;
@BindView(R2.id.tv_photo_hint)
TextView mTvPhotoHint;
@BindView(R2.id.iv_play_video)
ImageView mIvPlayVideo;
@BindView(R2.id.ll_video)
LinearLayout mLlVideo;
@BindView(R2.id.tv_video_hint)
TextView mTvVideoHint;
@BindView(R2.id.tv_voice)
TextView mTvVoice;
@BindView(R2.id.tv_voice_anim)
TextView mTvVoiceAnim;
@BindView(R2.id.ll_voice)
LinearLayout mLlVoice;
@BindView(R2.id.tv_handle_summary)
TextView mTvHandleSummary;
@BindView(R2.id.rlv_handle_photo)
RecyclerView mRlvHandlePhoto;
@BindView(R2.id.cv_handle)
CardView mCvHandle;
@BindView(R2.id.nsv_content)
NestedScrollView mNsvContent;
@BindView(R2.id.srl_content)
SmartRefreshLayout mSrlContent;
@BindView(R2.id.et_summary)
EditText mEtSummary;
@BindView(R2.id.btn_confirm)
Button mBtnConfirm;
@BindView(R2.id.btn_roll_back)
Button mBtnRollBack;
private Unbinder mBind;
private IncidentDetailBean mIncidentDetailBean;
private BaiduMap mBaiduMap;
private BitmapDescriptor mBitMap;
private String mReportId;
private String mTaskId;
private String mHandleId;
private IncidentHandleDetailBean mHandleDetail;
private String mDispatchId;
@Override
protected int setLayoutId() {
return R.layout.activity_incident_check_dept_detail;
}
@Override
public void initData() {
mBind = ButterKnife.bind(this);
mReportId = getIntent().getStringExtra("reportId");
mTaskId = getIntent().getStringExtra("taskId");
mHandleId = getIntent().getStringExtra("handleId");
mDispatchId = getIntent().getStringExtra("dispatchId");
mSrlContent.setEnableRefresh(false);
mSrlContent.setEnableLoadMore(false);
initMap();
getDetailData();
mBtnConfirm.setOnClickListener(v -> doConfirm());
mBtnRollBack.setOnClickListener(v -> doRollBack());
}
/**
* 处理不合格
*/
private void doRollBack() {
if (checkParams()) {
RequestBody body = buildParams();
ProgressDialog dialog = UIUtil.initDialog(mActivity, "处理中...");
dialog.show();
RetrofitManager.getInstance()
.create(DeptApis.class)
.doIncidentDeptCheckUnPass(mDispatchId, mHandleId, body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("处理成功");
setResult(13);
finish();
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
/**
* 提交
*/
private void doConfirm() {
if (checkParams()) {
RequestBody body = buildParams();
ProgressDialog dialog = UIUtil.initDialog(mActivity, "处理中...");
dialog.show();
RetrofitManager.getInstance()
.create(DeptApis.class)
.doIncidentDeptCheckPass(mDispatchId, body, UserLgUtils.getToken())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SuccessBean>() {
@Override
public void onSubscribe(@io.reactivex.rxjava3.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.rxjava3.annotations.NonNull SuccessBean successBean) {
dialog.dismiss();
ToastUtils.show("处理成功");
setResult(13);
finish();
}
@Override
public void onError(@io.reactivex.rxjava3.annotations.NonNull Throwable e) {
dialog.dismiss();
ExceptionHandler.handleException(e);
}
@Override
public void onComplete() {
}
});
}
}
/**
* 校验参数
*/
private boolean checkParams() {
String summary = mEtSummary.getText().toString().trim();
if (TextUtils.isEmpty(summary)) {
ToastUtils.show("请输入核查描述");
return false;
}
return true;
}
/**
* 构建参数
*/
private RequestBody buildParams() {
AcceptSaveBean bean = new AcceptSaveBean();
bean.setTaskId(mTaskId);
String content = mEtSummary.getText().toString().trim();
bean.setSummary(content);
Gson gson = new Gson();
String obj = gson.toJson(bean);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj);
return requestBody;
}
/**
* 获取详情
*/
private void getDetailData() {
Observable<IncidentHandleDetailBean> dispatch = RetrofitManager.getInstance().create(Apis.class).getHandleDetailByHandleId(mHandleId, UserLgUtils.getToken());
Observable<IncidentDetailBean> incidentDetail = RetrofitManager.getInstance().create(Apis.class).getIncidentDetailById(mReportId, UserLgUtils.getToken());
Observable.merge(dispatch, incidentDetail)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Object>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Object o) {
if (o instanceof IncidentHandleDetailBean) {
mHandleDetail = (IncidentHandleDetailBean) o;
setHandleDetail();
} else if (o instanceof IncidentDetailBean) {
mIncidentDetailBean = (IncidentDetailBean) o;
setIncidentDetailToView();
}
refreshView(STATE_LOAD_SUCCESS);
}
@Override
public void onError(@NonNull Throwable e) {
ExceptionHandler.handleException(e);
refreshView(STATE_LOAD_ERROR);
}
@Override
public void onComplete() {
}
});
}
/**
* 回显处理信息
*/
private void setHandleDetail() {
mTvHandleSummary.setText(mHandleDetail.getHandleSummary());
if (!TextUtils.isEmpty(mHandleDetail.getHandlePhotos())) {
String[] doorIds = mHandleDetail.getHandlePhotos().split(",");
ArrayList<String> paths = new ArrayList<>();
BaseShowPhotoAdapter mAdapter = new BaseShowPhotoAdapter(mActivity, paths);
mRlvHandlePhoto.setLayoutManager(new GridLayoutManager(mActivity, 4));
mRlvHandlePhoto.setAdapter(mAdapter);
mAdapter.setOnItemClickListener((data, pos) -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList("imgUrls", paths)
.withInt("curItem", pos)
.navigation());
for (String doorId : doorIds) {
if (!TextUtils.isEmpty(doorId)) {
paths.add(BaseUrlApi.BASE_IMG_URL + doorId);
}
}
mAdapter.setData(paths);
}
}
/**
* 回显事件信息
*/
private void setIncidentDetailToView() {
mTvGrid.setText(mIncidentDetailBean.getBGId());
mTvComponent.setText(mIncidentDetailBean.getCasePartsObjName());
mTvType.setText(mIncidentDetailBean.getCaseTypeName1() + "/" + mIncidentDetailBean.getCaseTypeName2());
if (mIncidentDetailBean.getIsSelf() == 0) {
mSwIsSelf.setChecked(false);
} else {
mSwIsSelf.setChecked(true);
}
mTvArea5.setText(mIncidentDetailBean.getReportAreaName());
mTvAddress.setText(mIncidentDetailBean.getReportAddress());
mTvContent.setText(mIncidentDetailBean.getReportContent());
double lat = Double.parseDouble(mIncidentDetailBean.getReportLat());
double lng = Double.parseDouble(mIncidentDetailBean.getReportLng());
moveMapToCenter(new LatLng(lat, lng), 18);
if (mBitMap == null) {
mBitMap = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_location_marker);
}
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(lat, lng))//mark出现的位置
.icon(mBitMap) //mark图标
.draggable(false)//mark可拖拽
.animateType(MarkerOptions.MarkerAnimateType.none);
mBaiduMap.addOverlay(markerOptions);
if (!TextUtils.isEmpty(mIncidentDetailBean.getReportPhotos())) {
//有图片
mTvPhotoHint.setVisibility(View.GONE);
mRlvPhotos.setVisibility(View.VISIBLE);
mRlvPhotos.setVisibility(View.VISIBLE);
mTvPhotoHint.setVisibility(View.GONE);
String[] doorIds = mIncidentDetailBean.getReportPhotos().split(",");
ArrayList<String> paths = new ArrayList<>();
BaseShowPhotoAdapter mAdapter = new BaseShowPhotoAdapter(mActivity, paths);
mRlvPhotos.setLayoutManager(new GridLayoutManager(mActivity, 4));
mRlvPhotos.setAdapter(mAdapter);
mAdapter.setOnItemClickListener((data, pos) -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_BASELIB_SHOW_IMG)
.withStringArrayList("imgUrls", paths)
.withInt("curItem", pos)
.navigation());
for (String doorId : doorIds) {
if (!TextUtils.isEmpty(doorId)) {
paths.add(BaseUrlApi.BASE_IMG_URL + doorId);
}
}
mAdapter.setData(paths);
} else {
//没有图片
mTvPhotoHint.setVisibility(View.VISIBLE);
mRlvPhotos.setVisibility(View.GONE);
}
if (!TextUtils.isEmpty(mIncidentDetailBean.getReportVideo())) {
//有视频
mLlVideo.setVisibility(View.VISIBLE);
mTvVideoHint.setVisibility(View.GONE);
mLlVideo.setOnClickListener(v -> //播放视频
ARouter.getInstance()
.build(PathConfig.PATH_MODULE_PLAYER_SIMPLE_VIDEO)
.withString("url", BaseUrlApi.BASE_IMG_URL + mIncidentDetailBean.getReportVideo())
.withString("title", "事件视频")
.navigation());
} else {
//没有视频
mLlVideo.setVisibility(View.GONE);
mTvVideoHint.setVisibility(View.VISIBLE);
}
if (!TextUtils.isEmpty(mIncidentDetailBean.getReportAudio())) {
Drawable drawable = getResources().getDrawable(R.drawable.anim_yuyin_sign);
mTvVoiceAnim.setCompoundDrawables(drawable, null, null, null);
String path = BaseUrlApi.BASE_IMG_URL + mIncidentDetailBean.getReportAudio();
mLlVoice.setOnClickListener(v -> {
if (!TextUtils.isEmpty(path)) {
AnimationDrawable animationDrawable = (AnimationDrawable) mTvVoiceAnim.getBackground();
animationDrawable.start();
MediaManager.playSound(path,
mp -> {
animationDrawable.selectDrawable(0);//显示动画第一帧
animationDrawable.stop();
MediaManager.destroy();
});
}
});
} else {
mTvVoiceAnim.setHint("未录入");
}
}
/**
* 将地图移动到定位中心
*
* @param latLng
*/
private void moveMapToCenter(LatLng latLng, int room) {
MapStatus ms = new MapStatus.Builder().zoom(room).target(latLng).build();
MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
mBaiduMap.setMapStatus(u);
}
@SuppressLint("ClickableViewAccessibility")
private void initMap() {
mTmvMap.showZoomControls(false);//缩放控件
mTmvMap.showScaleControl(false);//比例尺
mBaiduMap = mTmvMap.getMap();
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
mBaiduMap.setMyLocationEnabled(true);
View childAt = mTmvMap.getChildAt(1);
if (childAt != null && (childAt instanceof ImageView || childAt instanceof ZoomControls)) {
childAt.setVisibility(View.INVISIBLE);
}
mTmvMap.getChildAt(0).setOnTouchListener((View v, MotionEvent event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
mNsvContent.requestDisallowInterceptTouchEvent(false);
} else {
mNsvContent.requestDisallowInterceptTouchEvent(true);
}
return false;
});
moveMapToCenter(new LatLng(PathConfig.LA, PathConfig.LO), 14);
}
}

View File

@ -0,0 +1,442 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="135dp">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false"
tools:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.tenlionsoft.baselib.core.widget.views.ExpandableLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:defaultItemCount="3"
app:expandText="点击展开"
app:hideText="点击收起"
app:useDefaultBottom="true">
<TextView
android:id="@+id/tv_issue_base_info"
style="@style/issue_report_title"
android:padding="8dp"
android:text="事件基本信息"
android:textStyle="bold" />
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="所在网格" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_grid"
style="@style/item_content"
android:hint="未录入" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="部件" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_component"
style="@style/item_content"
android:hint="未录入" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="事件类型" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_type"
style="@style/item_content"
android:hint="未录入" />
</LinearLayout>
<LinearLayout
style="@style/item_gray"
android:padding="5dp">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="是否自处理" />
<View style="@style/vertical_line" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/sw_is_self"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/switch_ios_track_selector"
android:enabled="false"
android:switchMinWidth="40dp"
android:switchPadding="0dp"
android:textOff=""
android:textOn=""
app:showText="false"
app:splitTrack="false"
app:theme="@style/scstyle"
app:thumbTint="#00000000"
app:trackTint="#00000000" />
</RelativeLayout>
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="事发地区" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_area_5"
style="@style/item_content" />
</LinearLayout>
<LinearLayout style="@style/item_gray">
<ImageView
style="@style/style_hint_star"
android:visibility="invisible" />
<TextView
style="@style/item_title"
android:text="事发位置" />
<View style="@style/vertical_line" />
<TextView
android:id="@+id/tv_address"
style="@style/item_content" />
</LinearLayout>
<com.baidu.mapapi.map.TextureMapView
android:id="@+id/tmv_map"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="-5dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp" />
</com.tenlionsoft.baselib.core.widget.views.ExpandableLinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false"
tools:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.tenlionsoft.baselib.core.widget.views.ExpandableLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:defaultItemCount="3"
app:expandText="点击展开"
app:hideText="点击收起"
app:useDefaultBottom="true">
<TextView
android:id="@+id/tv_issue_detail_info"
style="@style/issue_report_title"
android:padding="8dp"
android:text="事件详细信息"
android:textStyle="bold" />
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="事件说明" />
<TextView
android:id="@+id/tv_content"
style="@style/item_content_ver" />
</LinearLayout>
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="事件图片" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_photos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:visibility="gone" />
<TextView
android:id="@+id/tv_photo_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="15dp"
android:text="未上传" />
</RelativeLayout>
</LinearLayout>
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="视频" />
<RelativeLayout
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_gravity="center">
<LinearLayout
android:id="@+id/ll_video"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_margin="5dp"
android:background="@drawable/shp_rectangle_black"
android:gravity="center">
<ImageView
android:id="@+id/iv_play_video"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:scaleType="fitXY"
android:src="@drawable/ic_play_white_icon" />
</LinearLayout>
<TextView
android:id="@+id/tv_video_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="15dp"
android:text="未上传" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp"
android:background="@drawable/shp_rectangle_gray"
android:gravity="center_vertical"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/ll_voice"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_voice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_record_video"
android:drawablePadding="8dp"
android:gravity="left"
android:padding="5dp"
android:text="录音"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_voice_anim"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:clickable="true"
android:focusable="true"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
</com.tenlionsoft.baselib.core.widget.views.ExpandableLinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/cv_handle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardCornerRadius="5dp"
app:cardPreventCornerOverlap="true"
app:cardUseCompatPadding="false"
tools:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/issue_report_title"
android:padding="8dp"
android:text="处理详情"
android:textStyle="bold" />
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="处理描述" />
<TextView
android:id="@+id/tv_handle_summary"
style="@style/item_content_ver"
android:minLines="3" />
</LinearLayout>
<LinearLayout style="@style/item_gray_vertical">
<TextView
style="@style/item_title_vertical"
android:text="处理照片" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_handle_photo"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<EditText
android:id="@+id/et_summary"
style="@style/item_content_vertical"
android:layout_margin="5dp"
android:hint="请输入核查描述信息"
android:minLines="3" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<Button
android:id="@+id/btn_confirm"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/sel_btn_submit"
android:text="处理完成"
android:textColor="@color/white" />
<Button
android:id="@+id/btn_roll_back"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/sel_btn_activity_sign_up"
android:text="重新处理"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>

View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_bg"
android:orientation="vertical">
<include layout="@layout/item_base_search" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp">
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_components"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateBehavior="repeat"
android:indeterminateDrawable="@drawable/anim_loading" />
<ImageView
android:id="@+id/iv_empty_data"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true"
android:background="@drawable/ic_empty_data" />
<TextView
android:id="@+id/tv_error_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:clickable="true"
android:textColor="@color/black"
tools:text="加载数据失败" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>