diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index b370f7b..a6cbc2f 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -15,7 +15,7 @@ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE}; public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; - public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; + public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; public static final List ANALYSIS_ICONS = Arrays.asList( diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index b370f7b..a6cbc2f 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -15,7 +15,7 @@ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE}; public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; - public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; + public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; public static final List ANALYSIS_ICONS = Arrays.asList( 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 416e1d3..dc53815 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -14,7 +15,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -26,6 +26,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -422,6 +423,22 @@ @Field("fieldintro") String fieldintro); /** + * 案卷处理 + *

+ * 派遣员处理 + */ + @FormUrlEncoded + @POST("/process/completeCaseTask") + Observable dispatcherHandleCase(@Header("token") String token, + @Field("processId") String processId, + @Field("bizId") String bizId, + @Field("currState") String currState, + @Field("changeState") String changeState, + @Field("remarks") String remarks, + @Field("operationKey") String operationKey, + @Field("taskUserId") String taskUserId); + + /** * 紧急要件-超时督办 */ @GET("/casedetail/updateSuperviseRemarks") @@ -531,16 +548,6 @@ @Field("applySource") String applySource); /** - * 二级派遣员待办任务 - *

- * http://111.198.10.15:11409/case/workListPage?offset=1&limit=15 - */ - @GET("/case/workListPage") - Observable obtainWorkListPage(@Header("token") String token, - @Query("limit") int limit, - @Query("offset") int offset); - - /** * 二级派遣员待处理案卷 *

* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15 @@ -599,4 +606,14 @@ Observable obtainCaseAdjustListPage(@Header("token") String token, @Query("limit") int limit, @Query("offset") int offset); + + /** + * 获取下级处置员 + *

+ * http://111.198.10.15:11409/mgr/simplelist?roleTips=process + */ + @FormUrlEncoded + @POST("/mgr/simplelist") + Observable obtainNextProcessPerson(@Header("token") String token, + @Field("roleTips") String roleTips); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index b370f7b..a6cbc2f 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -15,7 +15,7 @@ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE}; public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; - public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; + public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; public static final List ANALYSIS_ICONS = Arrays.asList( 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 416e1d3..dc53815 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -14,7 +15,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -26,6 +26,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -422,6 +423,22 @@ @Field("fieldintro") String fieldintro); /** + * 案卷处理 + *

+ * 派遣员处理 + */ + @FormUrlEncoded + @POST("/process/completeCaseTask") + Observable dispatcherHandleCase(@Header("token") String token, + @Field("processId") String processId, + @Field("bizId") String bizId, + @Field("currState") String currState, + @Field("changeState") String changeState, + @Field("remarks") String remarks, + @Field("operationKey") String operationKey, + @Field("taskUserId") String taskUserId); + + /** * 紧急要件-超时督办 */ @GET("/casedetail/updateSuperviseRemarks") @@ -531,16 +548,6 @@ @Field("applySource") String applySource); /** - * 二级派遣员待办任务 - *

- * http://111.198.10.15:11409/case/workListPage?offset=1&limit=15 - */ - @GET("/case/workListPage") - Observable obtainWorkListPage(@Header("token") String token, - @Query("limit") int limit, - @Query("offset") int offset); - - /** * 二级派遣员待处理案卷 *

* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15 @@ -599,4 +606,14 @@ Observable obtainCaseAdjustListPage(@Header("token") String token, @Query("limit") int limit, @Query("offset") int offset); + + /** + * 获取下级处置员 + *

+ * http://111.198.10.15:11409/mgr/simplelist?roleTips=process + */ + @FormUrlEncoded + @POST("/mgr/simplelist") + Observable obtainNextProcessPerson(@Header("token") String token, + @Field("roleTips") String roleTips); } 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 1a8056a..67e8da1 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 @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -16,7 +17,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -28,6 +28,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -470,6 +471,21 @@ } /** + * 案卷处理 + *

+ * 派遣员处理 + */ + public static Observable getDispatcherHandleCaseResult(String processId, String bizId, + String currState, String changeState, + String remarks, String operationKey, + String taskUserId) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.dispatcherHandleCase(AuthenticationHelper.getToken(), processId, bizId, currState, + changeState, remarks, operationKey, taskUserId); + } + + /** * 紧急要件-超时督办 */ public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { @@ -566,15 +582,6 @@ } /** - * 二级派遣员待办任务 - */ - public static Observable getWorkListResult(int offset) { - Retrofit retrofit = createRetrofit(); - RetrofitService service = retrofit.create(RetrofitService.class); - return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); - } - - /** * 二级派遣员待处理案卷 */ public static Observable getProcessListResult(int offset) { @@ -627,4 +634,13 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseAdjustListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); } + + /** + * 获取下级处置员 + */ + public static Observable getProcessPerson() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainNextProcessPerson(AuthenticationHelper.getToken(), "process"); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index b370f7b..a6cbc2f 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -15,7 +15,7 @@ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE}; public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; - public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; + public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; public static final List ANALYSIS_ICONS = Arrays.asList( 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 416e1d3..dc53815 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -14,7 +15,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -26,6 +26,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -422,6 +423,22 @@ @Field("fieldintro") String fieldintro); /** + * 案卷处理 + *

+ * 派遣员处理 + */ + @FormUrlEncoded + @POST("/process/completeCaseTask") + Observable dispatcherHandleCase(@Header("token") String token, + @Field("processId") String processId, + @Field("bizId") String bizId, + @Field("currState") String currState, + @Field("changeState") String changeState, + @Field("remarks") String remarks, + @Field("operationKey") String operationKey, + @Field("taskUserId") String taskUserId); + + /** * 紧急要件-超时督办 */ @GET("/casedetail/updateSuperviseRemarks") @@ -531,16 +548,6 @@ @Field("applySource") String applySource); /** - * 二级派遣员待办任务 - *

- * http://111.198.10.15:11409/case/workListPage?offset=1&limit=15 - */ - @GET("/case/workListPage") - Observable obtainWorkListPage(@Header("token") String token, - @Query("limit") int limit, - @Query("offset") int offset); - - /** * 二级派遣员待处理案卷 *

* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15 @@ -599,4 +606,14 @@ Observable obtainCaseAdjustListPage(@Header("token") String token, @Query("limit") int limit, @Query("offset") int offset); + + /** + * 获取下级处置员 + *

+ * http://111.198.10.15:11409/mgr/simplelist?roleTips=process + */ + @FormUrlEncoded + @POST("/mgr/simplelist") + Observable obtainNextProcessPerson(@Header("token") String token, + @Field("roleTips") String roleTips); } 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 1a8056a..67e8da1 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 @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -16,7 +17,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -28,6 +28,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -470,6 +471,21 @@ } /** + * 案卷处理 + *

+ * 派遣员处理 + */ + public static Observable getDispatcherHandleCaseResult(String processId, String bizId, + String currState, String changeState, + String remarks, String operationKey, + String taskUserId) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.dispatcherHandleCase(AuthenticationHelper.getToken(), processId, bizId, currState, + changeState, remarks, operationKey, taskUserId); + } + + /** * 紧急要件-超时督办 */ public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { @@ -566,15 +582,6 @@ } /** - * 二级派遣员待办任务 - */ - public static Observable getWorkListResult(int offset) { - Retrofit retrofit = createRetrofit(); - RetrofitService service = retrofit.create(RetrofitService.class); - return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); - } - - /** * 二级派遣员待处理案卷 */ public static Observable getProcessListResult(int offset) { @@ -627,4 +634,13 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseAdjustListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); } + + /** + * 获取下级处置员 + */ + public static Observable getProcessPerson() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainNextProcessPerson(AuthenticationHelper.getToken(), "process"); + } } diff --git a/app/src/main/res/layout/activity_dept_process.xml b/app/src/main/res/layout/activity_dept_process.xml new file mode 100644 index 0000000..b097a6e --- /dev/null +++ b/app/src/main/res/layout/activity_dept_process.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index b370f7b..a6cbc2f 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -15,7 +15,7 @@ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE}; public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; - public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; + public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; public static final List ANALYSIS_ICONS = Arrays.asList( 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 416e1d3..dc53815 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -14,7 +15,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -26,6 +26,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -422,6 +423,22 @@ @Field("fieldintro") String fieldintro); /** + * 案卷处理 + *

+ * 派遣员处理 + */ + @FormUrlEncoded + @POST("/process/completeCaseTask") + Observable dispatcherHandleCase(@Header("token") String token, + @Field("processId") String processId, + @Field("bizId") String bizId, + @Field("currState") String currState, + @Field("changeState") String changeState, + @Field("remarks") String remarks, + @Field("operationKey") String operationKey, + @Field("taskUserId") String taskUserId); + + /** * 紧急要件-超时督办 */ @GET("/casedetail/updateSuperviseRemarks") @@ -531,16 +548,6 @@ @Field("applySource") String applySource); /** - * 二级派遣员待办任务 - *

- * http://111.198.10.15:11409/case/workListPage?offset=1&limit=15 - */ - @GET("/case/workListPage") - Observable obtainWorkListPage(@Header("token") String token, - @Query("limit") int limit, - @Query("offset") int offset); - - /** * 二级派遣员待处理案卷 *

* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15 @@ -599,4 +606,14 @@ Observable obtainCaseAdjustListPage(@Header("token") String token, @Query("limit") int limit, @Query("offset") int offset); + + /** + * 获取下级处置员 + *

+ * http://111.198.10.15:11409/mgr/simplelist?roleTips=process + */ + @FormUrlEncoded + @POST("/mgr/simplelist") + Observable obtainNextProcessPerson(@Header("token") String token, + @Field("roleTips") String roleTips); } 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 1a8056a..67e8da1 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 @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -16,7 +17,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -28,6 +28,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -470,6 +471,21 @@ } /** + * 案卷处理 + *

+ * 派遣员处理 + */ + public static Observable getDispatcherHandleCaseResult(String processId, String bizId, + String currState, String changeState, + String remarks, String operationKey, + String taskUserId) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.dispatcherHandleCase(AuthenticationHelper.getToken(), processId, bizId, currState, + changeState, remarks, operationKey, taskUserId); + } + + /** * 紧急要件-超时督办 */ public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { @@ -566,15 +582,6 @@ } /** - * 二级派遣员待办任务 - */ - public static Observable getWorkListResult(int offset) { - Retrofit retrofit = createRetrofit(); - RetrofitService service = retrofit.create(RetrofitService.class); - return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); - } - - /** * 二级派遣员待处理案卷 */ public static Observable getProcessListResult(int offset) { @@ -627,4 +634,13 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseAdjustListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); } + + /** + * 获取下级处置员 + */ + public static Observable getProcessPerson() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainNextProcessPerson(AuthenticationHelper.getToken(), "process"); + } } diff --git a/app/src/main/res/layout/activity_dept_process.xml b/app/src/main/res/layout/activity_dept_process.xml new file mode 100644 index 0000000..b097a6e --- /dev/null +++ b/app/src/main/res/layout/activity_dept_process.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_map_case.xml b/app/src/main/res/layout/activity_map_case.xml index d72a004..ba5cc07 100644 --- a/app/src/main/res/layout/activity_map_case.xml +++ b/app/src/main/res/layout/activity_map_case.xml @@ -62,7 +62,6 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:background="@drawable/radio_selector" android:button="@null" android:gravity="center" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5db1e96..d99ecf5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,6 +87,8 @@ + + diff --git a/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java new file mode 100644 index 0000000..33623d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/ProcessPersonBean.java @@ -0,0 +1,119 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class ProcessPersonBean { + + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * account : zfddczy + * attr1 : + * deptId : 1177028662545973250 + * deptName : 桥南中队 + * id : 1188725016870416385 + * name : 李军 + * phone : + */ + + private String account; + private String attr1; + private String deptId; + private String deptName; + private String id; + private String name; + private String phone; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java index ff540c7..093fb12 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseHandleModelImpl.java @@ -113,4 +113,32 @@ } }); } + + @Override + public Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, + bizId, currState, changeState, remarks, operationKey, taskUserId); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java deleted file mode 100644 index a5f4a1e..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/model/DeptTodoModelImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.casic.dcms.mvp.model; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.utils.retrofit.RetrofitServiceManager; - -import rx.Observable; -import rx.Observer; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; - -public class DeptTodoModelImpl implements IDeptCaseModel { - - private OnGetCaseListListener listener; - - public DeptTodoModelImpl(OnGetCaseListListener caseListListener) { - this.listener = caseListListener; - } - - public interface OnGetCaseListListener { - void onSuccess(PackageOrDeptBean resultBean); - - void onFailure(Throwable throwable); - } - - @Override - public Subscription sendRetrofitRequest(int offset) { - Observable observable = RetrofitServiceManager.getWorkListResult(offset); - return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { - @Override - public void onCompleted() { - - } - - @Override - public void onError(Throwable e) { - if (e.getCause() != null) { - listener.onFailure(e); - } - } - - @Override - public void onNext(PackageOrDeptBean resultBean) { - if (resultBean != null) { - listener.onSuccess(resultBean); - } - } - }); - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java index 7398206..0191ac5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseHandleModel.java @@ -14,4 +14,8 @@ String casetypeDetailCode, String lng, String lat, String caseLevel, String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + + //派遣员 + Subscription sendDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java new file mode 100644 index 0000000..d72ebd5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/IProcessPersonModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface IProcessPersonModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java new file mode 100644 index 0000000..06f6fb4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ProcessPersonModelImpl.java @@ -0,0 +1,54 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class ProcessPersonModelImpl implements IProcessPersonModel { + + private static final String TAG = "ProcessPersonModelImpl"; + private OnGetProcessListener listener; + + public ProcessPersonModelImpl(OnGetProcessListener processListener) { + this.listener = processListener; + } + + /** + * 数据回调接口 + */ + public interface OnGetProcessListener { + void onSuccess(ProcessPersonBean result); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getProcessPerson(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (e.getCause() != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ProcessPersonBean result) { + if (result != null) { + listener.onSuccess(result); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java index 1c9f1af..7db22e5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseHandlePresenterImpl.java @@ -48,6 +48,15 @@ } @Override + public void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, + String changeState, String remarks, String operationKey, + String taskUserId) { + view.showProgress(); + addSubscription(actionModel.sendDispatcherRetrofitRequest(processId, bizId, currState, changeState, remarks, + operationKey, taskUserId)); + } + + @Override public void onSuccess(ActionResultBean resultBean) { view.hideProgress(); view.obtainCaseHandleResult(resultBean); diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java deleted file mode 100644 index eca4ff8..0000000 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/DeptTodoPresenterImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.casic.dcms.mvp.presenter; - -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.BasePresenter; -import com.casic.dcms.mvp.model.DeptTodoModelImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; - -public class DeptTodoPresenterImpl extends BasePresenter implements IDeptCasePresenter, DeptTodoModelImpl.OnGetCaseListListener { - - private IDeptTodoOrHandledView view; - private DeptTodoModelImpl actionModel; - - public DeptTodoPresenterImpl(IDeptTodoOrHandledView deptCaseView) { - this.view = deptCaseView; - actionModel = new DeptTodoModelImpl(this); - } - - //二级待办待处理 - @Override - public void onReadyRetrofitRequest(int offset) { - addSubscription(actionModel.sendRetrofitRequest(offset)); - } - - @Override - public void disposeRetrofitRequest() { - unSubscription(); - } - - @Override - public void onSuccess(PackageOrDeptBean resultBean) { - view.obtainResult(resultBean); - } - - @Override - public void onFailure(Throwable throwable) { - - } -} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java index 2510689..44fbaab 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseHandlePresenter.java @@ -14,5 +14,8 @@ String areaCode, String streetCode, String communityCode, String gridId, String fieldintro); + void onReadyDispatcherRetrofitRequest(String processId, String bizId, String currState, String changeState, + String remarks, String operationKey, String taskUserId); + void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java new file mode 100644 index 0000000..b419755 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/IProcessPersonPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface IProcessPersonPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java new file mode 100644 index 0000000..af76deb --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ProcessPersonPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.ProcessPersonModelImpl; +import com.casic.dcms.mvp.view.IHandleProcessView; + +public class ProcessPersonPresenterImpl extends BasePresenter implements IProcessPersonPresenter, ProcessPersonModelImpl.OnGetProcessListener { + + private IHandleProcessView view; + private ProcessPersonModelImpl actionModel; + + public ProcessPersonPresenterImpl(IHandleProcessView handleProcessView) { + this.view = handleProcessView; + actionModel = new ProcessPersonModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(ProcessPersonBean resultBean) { + view.obtainResultData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.obtainDataFail(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java new file mode 100644 index 0000000..cc62e69 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/IHandleProcessView.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ProcessPersonBean; + +public interface IHandleProcessView { + void obtainResultData(ProcessPersonBean resultBean); + + void obtainDataFail(); +} diff --git a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java index 1b438eb..e698b07 100644 --- a/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DeptHandleActivity.java @@ -17,7 +17,6 @@ import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; import com.casic.dcms.ui.fragment.dept.DeptCasePostponeFragment; import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; -import com.casic.dcms.ui.fragment.dept.DeptCaseTodoFragment; import com.casic.dcms.utils.Constant; import com.google.android.material.tabs.TabLayout; import com.qmuiteam.qmui.widget.QMUITopBarLayout; @@ -58,7 +57,6 @@ @Override public void initData() { List fragmentList = new ArrayList<>(); - fragmentList.add(new DeptCaseTodoFragment());//待办 fragmentList.add(new DeptCaseProcessFragment());//待处理 fragmentList.add(new DeptCaseAdjustFragment());//部门调整 fragmentList.add(new DeptCasePostponeFragment());//二级缓办 diff --git a/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java new file mode 100644 index 0000000..1517541 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/DeptProcessDetailActivity.java @@ -0,0 +1,441 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.ProcessPersonBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.ProcessPersonPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailHandleView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.IHandleProcessView; +import com.casic.dcms.ui.fragment.dept.DeptCaseHandledFragment; +import com.casic.dcms.ui.fragment.dept.DeptCaseProcessFragment; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.JzExoMedia; +import com.casic.dcms.utils.OtherUtils; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.casic.dcms.widgets.AudioPlayerView; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; + +public class DeptProcessDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, IHandleProcessView, ICaseDetailHandleView, ICaseNextNodeView { + + private Context context = DeptProcessDetailActivity.this; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseResourceView) + TextView caseResourceView; + @BindView(R.id.caseCreatorView) + TextView caseCreatorView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.audioPlayerView) + AudioPlayerView audioPlayerView; + @BindView(R.id.videoPlayerView) + JzvdStd videoPlayerView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.optTypeView) + TextView optTypeView; + @BindView(R.id.casePersonLayout) + RelativeLayout casePersonLayout; + @BindView(R.id.personLine) + View personLine; + @BindView(R.id.caseHandlePersonView) + TextView caseHandlePersonView; + @BindView(R.id.optionEditView) + EditText optionEditView; + @BindView(R.id.commonTipsView) + TextView commonTipsView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private ProcessPersonPresenterImpl handleProcessPresenter; + private List personBeans; + private CaseHandlePresenterImpl caseHandlePresenter; + private CaseNextNodePresenterImpl nextNodePresenter; + private String id; + private String changeState; + private String taskUserId; + private String operationKey; + private List nodeDataBeans; + + @Override + protected String setTitleName() { + return "待处理"; + } + + @Override + public int initLayoutView() { + return R.layout.activity_dept_process; + } + + @Override + public void initData() { + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + nextNodePresenter = new CaseNextNodePresenterImpl(this); + + handleProcessPresenter = new ProcessPersonPresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + } + + @Override + public void initEvent() { + submitButton.setChangeAlphaWhenPress(true); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseResourceView.setText(data.getSourceName()); + caseCreatorView.setText(data.getCreateUserName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName()); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); + + String images = data.getFileIdVerify(); + if (!TextUtils.isEmpty(images)) { + ArrayList urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + if (s.endsWith(".jpg") || s.contains(".jpeg") || s.contains(".png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + String audioFile = data.getAudioIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + audioPlayerView.setVisibility(View.VISIBLE); + audioPlayerView.setAudioUrl(StringHelper.appendCompleteURL(audioFile)); + } + + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(videoFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl = StringHelper.appendCompleteURL(videoFile); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription()), Jzvd.SCREEN_NORMAL, JzExoMedia.class); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.posterImageView); + } + + //处理图片 + String handleImages = data.getFileIdProcess(); + if (!TextUtils.isEmpty(handleImages)) { + ArrayList urls = new ArrayList<>(); + String[] split = handleImages.split(","); + for (String s : split) { + if (s.contains("jpg") || s.contains("jpeg") || s.contains("png")) { + urls.add(StringHelper.appendCompleteURL(s)); + } + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, urls); + } + }); + imageAdapter.setDeleteView(false); + } + + //获取处置类型 + nextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + } + } + + @Override + public void showProgress() { + OtherUtils.showLoadingDialog(this, "处理中,请稍后"); + } + + @Override + public void hideProgress() { + OtherUtils.dismissLoadingDialog(); + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + DeptCaseProcessFragment.sendEmptyMessage(Constant.DEPT_DONE); + DeptCaseHandledFragment.sendEmptyMessage(Constant.DEPT_DONE); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + public void obtainDataFail() { + ToastHelper.showToast("操作失败", ToastHelper.ERROR); + } + + @OnClick({R.id.locationMapView, R.id.caseOptTypeLayout, R.id.commonTipsLayout, R.id.casePersonLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.locationMapView: + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("caseType", data.getEorcName()); + String dataLng = data.getLng(); + if (TextUtils.isEmpty(dataLng)) { + ToastHelper.showToast("案卷经度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lng", Double.parseDouble(dataLng)); + String dataLat = data.getLat(); + if (TextUtils.isEmpty(dataLat)) { + ToastHelper.showToast("案卷纬度异常", ToastHelper.ERROR); + return; + } + intent.putExtra("lat", Double.parseDouble(dataLat)); + startActivity(intent); + break; + case R.id.caseOptTypeLayout: + if (nodeDataBeans != null) { + if (nodeDataBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("操作类型"); + for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { + sheetBuilder.addItem(dataBean.getNextOperation()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + optTypeView.setText(tag); + optTypeView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); + changeState = String.valueOf(nodeBean.getNextState()); + operationKey = nodeBean.getOperationKey(); + + if (tag.equals("处置人员")) { + casePersonLayout.setVisibility(View.VISIBLE); + personLine.setVisibility(View.VISIBLE); + + //获取下级处置人员名单 + handleProcessPresenter.onReadyRetrofitRequest(); + } else { + casePersonLayout.setVisibility(View.GONE); + personLine.setVisibility(View.GONE); + } + } + }).build().show(); + } + } + break; + case R.id.casePersonLayout: + if (personBeans != null) { + if (personBeans.size() >= 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处置人员"); + for (ProcessPersonBean.DataBean dataBean : personBeans) { + sheetBuilder.addItem(dataBean.getName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseHandlePersonView.setText(tag); + caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + taskUserId = personBeans.get(position).getId(); + } + }).build().show(); + } + } + break; + case R.id.commonTipsLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + commonTipsView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + + optionEditView.setText(tag); + commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.textColor)); + } + }).build().show(); + break; + case R.id.submitButton: + submitCase(); + break; + } + } + + private void submitCase() { + String optType = optTypeView.getText().toString(); + if (optType.equals("")) { + ToastHelper.showToast("还未选择操作类型", ToastHelper.WARING); + return; + } + if (optType.equals("处置人员")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + ToastHelper.showToast("当前状态必须指定处置员", ToastHelper.WARING); + return; + } + } + String optionInput = StringHelper.filterString(optionEditView.getText().toString()); + if (optType.equals("申请调整") || optType.equals("申请延期") || optType.equals("申请缓办")) { + if (TextUtils.isEmpty(optionInput)) { + ToastHelper.showToast("调整/延期/缓办的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyDispatcherRetrofitRequest(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + + @Override + public void obtainResultData(ProcessPersonBean resultBean) { + if (resultBean.isSuccess()) { + this.personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + this.nodeDataBeans = resultBean.getData(); + if (nodeDataBeans.size() == 0) { + optTypeView.setText("无下级流转节点"); + } else { + CaseNextNodeBean.DataBean dataBean = nodeDataBeans.get(0); + + operationKey = dataBean.getOperationKey(); + changeState = String.valueOf(dataBean.getNextState()); + optTypeView.setText(dataBean.getNextOperation());//默认选择第一个 + } + caseHandlePersonView.setTextColor(ContextCompat.getColor(this, R.color.textColor)); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (handleProcessPresenter != null) { + handleProcessPresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + if (nextNodePresenter != null) { + nextNodePresenter.disposeRetrofitRequest(); + } + if (audioPlayerView != null) { + audioPlayerView.release(); + } + } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java index bde8559..612621e 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseDelayedFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptDelayedPresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java index 3b45a3d..91c6a2d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseHandledFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptHandledPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ handledFragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(handledFragment.context, CaseDetailActivity.class); + intent.putExtra("id", handledFragment.dataBeans.get(position).getId()); + handledFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java index 8bedb88..31a6ef6 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCasePostponeFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.mvp.presenter.DeptPostponePresenterImpl; import com.casic.dcms.mvp.view.IDeptPostOrDelayedView; +import com.casic.dcms.ui.CaseDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -110,9 +112,9 @@ deptCaseFragment.adapter.setOnItemClickListener(new DeptDelayedOrPostAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(deptCaseFragment.context, PackageHandledDetailActivity.class); -// intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); -// deptCaseFragment.startActivity(intent); + Intent intent = new Intent(deptCaseFragment.context, CaseDetailActivity.class); + intent.putExtra("id", deptCaseFragment.dataBeans.get(position).getId()); + deptCaseFragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java index faa7d8f..12f5b4d 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseProcessFragment.java @@ -1,6 +1,7 @@ package com.casic.dcms.ui.fragment.dept; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -15,6 +16,7 @@ import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.mvp.presenter.DeptProcessPresenterImpl; import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; +import com.casic.dcms.ui.DeptProcessDetailActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; @@ -123,7 +125,9 @@ fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { - + Intent intent = new Intent(fragment.context, DeptProcessDetailActivity.class); + intent.putExtra("id", fragment.dataBeans.get(position).getId()); + fragment.startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java deleted file mode 100644 index 4b7e943..0000000 --- a/app/src/main/java/com/casic/dcms/ui/fragment/dept/DeptCaseTodoFragment.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.casic.dcms.ui.fragment.dept; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.DeptTodoOrHandledAdapter; -import com.casic.dcms.base.BaseFragment; -import com.casic.dcms.bean.PackageOrDeptBean; -import com.casic.dcms.mvp.presenter.DeptTodoPresenterImpl; -import com.casic.dcms.mvp.view.IDeptTodoOrHandledView; -import com.casic.dcms.utils.Constant; -import com.casic.dcms.utils.ToastHelper; -import com.qmuiteam.qmui.widget.QMUIEmptyView; -import com.scwang.smartrefresh.layout.SmartRefreshLayout; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; - -public class DeptCaseTodoFragment extends BaseFragment implements IDeptTodoOrHandledView { - - private Context context; - @BindView(R.id.emptyView) - QMUIEmptyView emptyView; - @BindView(R.id.refreshLayout) - SmartRefreshLayout refreshLayout; - @BindView(R.id.caseRecyclerView) - RecyclerView caseRecyclerView; - - private DeptTodoPresenterImpl todoPresenter; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh, isLoadMore = false; - private static WeakReferenceHandler weakReferenceHandler; - private DeptTodoOrHandledAdapter adapter; - - @Override - protected int initLayoutView() { - return R.layout.fragment_package_case; - } - - @Override - protected void setupTopBarLayout() { - context = getContext(); - } - - @Override - protected void initData() { - todoPresenter = new DeptTodoPresenterImpl(this); - todoPresenter.onReadyRetrofitRequest(pageIndex); - - weakReferenceHandler = new WeakReferenceHandler(this); - } - - @Override - protected void initEvent() { - refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - todoPresenter.onReadyRetrofitRequest(pageIndex); - } - }); - } - - public static void sendEmptyMessage(int what) { - if (weakReferenceHandler == null) { - return; - } - weakReferenceHandler.sendEmptyMessage(what); - } - - private static class WeakReferenceHandler extends Handler { - private WeakReference reference; - - private WeakReferenceHandler(DeptCaseTodoFragment fragment) { - reference = new WeakReference<>(fragment); - } - - @Override - public void handleMessage(Message msg) { - DeptCaseTodoFragment fragment = reference.get(); - if (msg.what == Constant.DEPT_DONE) { - fragment.isRefresh = true; - //刷新之后页码重置 - fragment.pageIndex = 1; - fragment.todoPresenter.onReadyRetrofitRequest(fragment.pageIndex); - } else if (msg.what == 2021062101) { - if (fragment.isRefresh || fragment.isLoadMore) { - fragment.adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (fragment.dataBeans.size() == 0) { - fragment.emptyView.show("您暂时没有待办案卷", null); - } else { - fragment.emptyView.hide(); - fragment.adapter = new DeptTodoOrHandledAdapter(fragment.context, fragment.dataBeans); - fragment.caseRecyclerView.setLayoutManager(new LinearLayoutManager(fragment.context)); - fragment.caseRecyclerView.addItemDecoration(new DividerItemDecoration(fragment.context, DividerItemDecoration.VERTICAL)); - fragment.caseRecyclerView.setAdapter(fragment.adapter); - fragment.adapter.setOnItemClickListener(new DeptTodoOrHandledAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - - } - }); - } - } - } - } - } - - @Override - public void obtainResult(PackageOrDeptBean resultBean) { - if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - ToastHelper.showToast("到底了,别拉了", ToastHelper.INFO); - } - dataBeans.addAll(dataRows); - refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - weakReferenceHandler.sendEmptyMessage(2021062101); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - if (todoPresenter != null) { - todoPresenter.disposeRetrofitRequest(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index b370f7b..a6cbc2f 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -15,7 +15,7 @@ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.READ_PHONE_STATE}; public static final String[] CASE_PAGE_TITLES = {"待办案卷", "已办案卷"}; - public static final String[] DEPT_PAGE_TITLES = {"待办任务", "待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; + public static final String[] DEPT_PAGE_TITLES = {"待处理", "部门调整批示", "二级缓办待处理", "部门授权审核", "二级延期待处理", "已办案卷"}; public static final String[] CHART_PAGE_TITLES = {"表格", "饼状图"}; public static final List ANALYSIS_ICONS = Arrays.asList( 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 416e1d3..dc53815 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,6 +1,7 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -14,7 +15,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -26,6 +26,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -422,6 +423,22 @@ @Field("fieldintro") String fieldintro); /** + * 案卷处理 + *

+ * 派遣员处理 + */ + @FormUrlEncoded + @POST("/process/completeCaseTask") + Observable dispatcherHandleCase(@Header("token") String token, + @Field("processId") String processId, + @Field("bizId") String bizId, + @Field("currState") String currState, + @Field("changeState") String changeState, + @Field("remarks") String remarks, + @Field("operationKey") String operationKey, + @Field("taskUserId") String taskUserId); + + /** * 紧急要件-超时督办 */ @GET("/casedetail/updateSuperviseRemarks") @@ -531,16 +548,6 @@ @Field("applySource") String applySource); /** - * 二级派遣员待办任务 - *

- * http://111.198.10.15:11409/case/workListPage?offset=1&limit=15 - */ - @GET("/case/workListPage") - Observable obtainWorkListPage(@Header("token") String token, - @Query("limit") int limit, - @Query("offset") int offset); - - /** * 二级派遣员待处理案卷 *

* http://111.198.10.15:11409/case/toProcessListPage/?offset=1&limit=15 @@ -599,4 +606,14 @@ Observable obtainCaseAdjustListPage(@Header("token") String token, @Query("limit") int limit, @Query("offset") int offset); + + /** + * 获取下级处置员 + *

+ * http://111.198.10.15:11409/mgr/simplelist?roleTips=process + */ + @FormUrlEncoded + @POST("/mgr/simplelist") + Observable obtainNextProcessPerson(@Header("token") String token, + @Field("roleTips") String roleTips); } 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 1a8056a..67e8da1 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 @@ -3,6 +3,7 @@ import android.util.Log; import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.CaseCheckBean; import com.casic.dcms.bean.CaseDetailBean; import com.casic.dcms.bean.CaseHandleBean; @@ -16,7 +17,6 @@ import com.casic.dcms.bean.CaseVerifyBean; import com.casic.dcms.bean.CleanRecordBean; import com.casic.dcms.bean.ComSentenceBean; -import com.casic.dcms.bean.AuthorizeOrAdjustBean; import com.casic.dcms.bean.DelayedOrPostBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -28,6 +28,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.bean.PackageOrDeptBean; import com.casic.dcms.bean.PhoneBookBean; +import com.casic.dcms.bean.ProcessPersonBean; import com.casic.dcms.bean.PublicKeyBean; import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.bean.UserBean; @@ -470,6 +471,21 @@ } /** + * 案卷处理 + *

+ * 派遣员处理 + */ + public static Observable getDispatcherHandleCaseResult(String processId, String bizId, + String currState, String changeState, + String remarks, String operationKey, + String taskUserId) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.dispatcherHandleCase(AuthenticationHelper.getToken(), processId, bizId, currState, + changeState, remarks, operationKey, taskUserId); + } + + /** * 紧急要件-超时督办 */ public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { @@ -566,15 +582,6 @@ } /** - * 二级派遣员待办任务 - */ - public static Observable getWorkListResult(int offset) { - Retrofit retrofit = createRetrofit(); - RetrofitService service = retrofit.create(RetrofitService.class); - return service.obtainWorkListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); - } - - /** * 二级派遣员待处理案卷 */ public static Observable getProcessListResult(int offset) { @@ -627,4 +634,13 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainCaseAdjustListPage(AuthenticationHelper.getToken(), Constant.PAGE_LIMIT, offset); } + + /** + * 获取下级处置员 + */ + public static Observable getProcessPerson() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainNextProcessPerson(AuthenticationHelper.getToken(), "process"); + } } diff --git a/app/src/main/res/layout/activity_dept_process.xml b/app/src/main/res/layout/activity_dept_process.xml new file mode 100644 index 0000000..b097a6e --- /dev/null +++ b/app/src/main/res/layout/activity_dept_process.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_map_case.xml b/app/src/main/res/layout/activity_map_case.xml index d72a004..ba5cc07 100644 --- a/app/src/main/res/layout/activity_map_case.xml +++ b/app/src/main/res/layout/activity_map_case.xml @@ -62,7 +62,6 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:background="@drawable/radio_selector" android:button="@null" android:gravity="center" diff --git a/app/src/main/res/layout/include_dept_base_layout.xml b/app/src/main/res/layout/include_dept_base_layout.xml new file mode 100644 index 0000000..9319f36 --- /dev/null +++ b/app/src/main/res/layout/include_dept_base_layout.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file